代码之家  ›  专栏  ›  技术社区  ›  tbone

奇怪的FormView行为…更新停止工作

  •  0
  • tbone  · 技术社区  · 14 年前

    如果我在Init事件中放入以下代码:

    Private Sub frmEdit_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles frmEdit.Init
       Debug.WriteLine(frmEdit.Controls.Count)
    End Sub
    

    但是,如果我将其改为:

    Private Sub frmEdit_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles frmEdit.Init
       Debug.WriteLine("hello world")
    End Sub
    

    ……又起作用了。所以,区别在于我在访问第一个示例中的frmEdit.Controls。我的问题是,为什么这会破坏它?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Nick Craver    14 年前

    访问控件集合时,您正在触发代码,以确保子控件也已初始化。对于FormView来说,Init在生命周期中还太早。在ViewState就绪之前初始化控件,因此无法正确地重新填充控件。

    你可以在生命周期的后期访问这些控件 frmEdit.Row.Controls 是你想要的。