2010-03-15 19 views
0

我有一個asp:FormView控件綁定到數據源。一切工作正常。奇怪的FormView行爲....更新停止工作

如果我把下面的代碼放在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

當您訪問Control集合時,您正在觸發代碼,以確保子控件也被初始化。對於FormView,Init在生命週期中爲此太早了。在ViewState準備就緒之前,您正在初始化控件,因此控件無法正確重新填充。

您可以在生命週期的後期訪問控件,我認爲frmEdit.Row.Controls就是您所追求的。