OVH Cloud OVH Cloud

Problème de référence a un control enfant dans un datagrid

1 réponse
Avatar
Thibault
Bonjour à tous,

j'ai une webform dans laquelle j'ai un datagrid. Dans le footer du datagrid
j'ai inséré un webcontrol de type checkbox auquel j'ajoute un événement
"checkedchanged" au moment de la creation du datagrid comme ceci :

Sub dtgListCIP_ItemCreated(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.DataGridItemEventArgs) Handles
dtgListCIP.ItemCreated
if (e.item.itemtype = ListItemType.Footer) then
Dim chkSelectAll as CheckBox
chkSelectAll = e.Item.FindControl("chkSelectAll")
AddHandler chkSelectAll.CheckChanged, AddressOf
chkSelectAll_CheckedChanged
end if
End Sub

Jusqu'ici tout va bien !!! Mon problème se situe dans la méthode
"chkSelectAll_CheckedChanged", je n'arrive pas a accéder à mon webcontrol
checkbox, ça me retourne une erreur du type :

La référence d'objet n'est pas définie à une instance d'un objet

Voici ma méthode chkSelectAll_CheckedChanged :

Private Sub chkSelectAll_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles chkSelectAll.CheckedChanged
Dim mDataGriditem As DataGridItem
Dim chkSelect As CheckBox

Dim chkSelectAll as CheckBox
chkSelectAll = dtgListCIP.FindControl("chkSelectAll")

If chkSelectAll.Checked = True Then
For Each mDataGriditem In dtgListCIP.Items
chkSelect = mDataGriditem.FindControl("chkSelect")
chkSelect.Checked = True
Next
Else
For Each mDataGriditem In dtgListCIP.Items
chkSelect = mDataGriditem.FindControl("chkSelect")
chkSelect.Checked = False
Next
End If
End Sub

Est ce que quelqu'un aurait une idée sur mon problème merci

1 réponse

Avatar
Thibault
C'est bon j'ai trouvé, pour ceux que ça pourrait intéresser, il falolait que
je remplace
chkSelectAll = dtgListCIP.FindControl("chkSelectAll")
par
chkSelectAll = ctype(sender, checkbox)

et là tout fonctionne parfaitement

"Thibault" a écrit :

Bonjour à tous,

j'ai une webform dans laquelle j'ai un datagrid. Dans le footer du datagrid
j'ai inséré un webcontrol de type checkbox auquel j'ajoute un événement
"checkedchanged" au moment de la creation du datagrid comme ceci :

Sub dtgListCIP_ItemCreated(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.DataGridItemEventArgs) Handles
dtgListCIP.ItemCreated
if (e.item.itemtype = ListItemType.Footer) then
Dim chkSelectAll as CheckBox
chkSelectAll = e.Item.FindControl("chkSelectAll")
AddHandler chkSelectAll.CheckChanged, AddressOf
chkSelectAll_CheckedChanged
end if
End Sub

Jusqu'ici tout va bien !!! Mon problème se situe dans la méthode
"chkSelectAll_CheckedChanged", je n'arrive pas a accéder à mon webcontrol
checkbox, ça me retourne une erreur du type :

La référence d'objet n'est pas définie à une instance d'un objet

Voici ma méthode chkSelectAll_CheckedChanged :

Private Sub chkSelectAll_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles chkSelectAll.CheckedChanged
Dim mDataGriditem As DataGridItem
Dim chkSelect As CheckBox

Dim chkSelectAll as CheckBox
chkSelectAll = dtgListCIP.FindControl("chkSelectAll")

If chkSelectAll.Checked = True Then
For Each mDataGriditem In dtgListCIP.Items
chkSelect = mDataGriditem.FindControl("chkSelect")
chkSelect.Checked = True
Next
Else
For Each mDataGriditem In dtgListCIP.Items
chkSelect = mDataGriditem.FindControl("chkSelect")
chkSelect.Checked = False
Next
End If
End Sub

Est ce que quelqu'un aurait une idée sur mon problème merci