Problème de référence a un control enfant dans un datagrid
1 réponse
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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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