动态handle datagrid里的控件的event

最近做的东西要handle datagrid里面的控件的event,datagrid是动态生成的,里面每一行都有一个textbox,第一个改了之后后面的都要改,但后面的改了不影响其他的。

显然要用写一个sub来处理事件,再用addhandler

Private Sub txtABC_TextChanged(ByVal sender As System.ObjectByVal e As System.EventArgs)
    
End Sub

AddHandler CType(e.Item.FindControl("txtABC"), TextBox).Text_Changed, AddressOf txtABC_TextChanged

可是这个addhandler在哪里写呢?我先写在datagrid的itemdatabound里面,发现不行,才意识到动态加上去的handler是不会被保存的,也就是说,每次postback都要再用一次addhandler
所以我把它写到了itemcreated事件里面:

Private Sub dgFoo_ItemCreated(ByVal sender As ObjectByVal e As DataGridItemEventArgs) Handles dgFoo.ItemCreated

If e.Item.ItemIndex = 0 Then
AddHandler CType(e.Item.FindControl("txtABC"), TextBox).Date_Changed, AddressOf txtABC_TextChanged
End If

End Sub

这样就可以了。

posted on 2004-09-07 11:05  myrat  阅读(1417)  评论(2编辑  收藏  举报

导航