Сначала вы должны объявить Private WithEvents chk As CheckBox
(WithEvents позволит вам иметь ссылку для флажка внутри списка данных)
Затем внутри DataList1_ItemCreated
вы должны сделать следующее:
Private Sub DataList1_ItemCreated(sender As Object, e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemCreated
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
chk = CType(e.Item.FindControl("CheckBox1"), CheckBox)
AddHandler chk.CheckedChanged, AddressOf chk_CheckedChanged
End If
End Sub
Сделайте chk ссылкой для флажка внутри списка данных
наконец вам нужно обработать событие checkbox / uncheck ( PS важно иметь ваш флажоккоторый находится внутри списка данных, для свойства AutoPostBack установлено значение true ):
Private Sub chk_CheckedChanged(sender As Object, e As System.EventArgs) Handles chk.CheckedChanged
Dim cb As CheckBox = CType(sender, CheckBox)
Dim item As DataListItem = DirectCast(cb.NamingContainer, DataListItem)
If cb.Checked Then
DirectCast(DataList1.Items(item.ItemIndex).FindControl("Button1"), Button).Enabled = True
Else
DirectCast(DataList1.Items(item.ItemIndex).FindControl("Button1"), Button).Enabled = False
End If
End Sub