je souhaite comprendre de maniere simple (je suis assez nul) comment
recuperer les valeurs dans un datagrid en fonction d'un checkbox
j'ai visionne de nombreux exemples d'ailleurs plutot sur des sites US, ils
fonctionnent parfaitement mais dès que je les adapte (changement de la
chaine de connection + modif pour access)
je me heurte a l'erreur suivante :
L'index était hors limites. Il ne doit pas être négatif et doit être
inférieur à la taille de la collection.
Nom du paramètre : index
Ligne 341 : '
Ligne 342 : If CType(Datagrid1.Items(i).FindControl("SelectionBox"),
CheckBox).Checked Then
Ligne 343 :
sKeys.Add(Datagrid1.DataKeys(Datagrid1.Items(i).ItemIndex).ToString)
Ligne 344 : End If
Ligne 345 : Next
Fichier source : f:\inetpub\wwwroot\admin\vueProd_Compat.aspx.vb Ligne :
343
une piste a vous soumettre
mon datagrid n'affiche pas toute la base mais seulement les enregistrements
correspondant à un droplist.
Donc je resume :
1/ l'utilisateur choisi dans un droplist une famille de produit
2/ le datagrid affiche les enregistrement pour cette famille
3/ l'utilisateur peut alors utiliser des checkbox dans ce datagrid pour
effectuer une action
Private Sub Datagrid1_ItemCommand(ByVal source As Object, ByVal e As
DataGridCommandEventArgs) Handles Datagrid1.ItemCommand
If e.CommandName = "AjoutBatch" Then
'Dim rowCount As Integer = 0
'Dim gridSelections As StringBuilder = New StringBuilder
'Loop through each DataGridItem, and determine which CheckBox controls
'have been selected.
'Dim Datagrid1Item As DataGridItem
'For Each Datagrid1Item In Datagrid1.Items
'Dim myCheckbox As CheckBox = CType(Datagrid1Item.Cells(0).Controls(1),
CheckBox)
'If myCheckbox.Checked = True Then
'rowCount += 1
'gridSelections.AppendFormat("The checkbox for {0} was selected<br>", _
'Datagrid1.DataKeys(Datagrid1Item.ItemIndex).ToString())
'End If
'Next
'gridSelections.Append("<hr>")
'gridSelections.AppendFormat("Total number selected is: {0}<br>",
rowCount.ToString())
'Message.Text = gridSelections.ToString()
Dim ligne As DataGridItem
Dim sKeys As New ArrayList
Dim i As Integer
Dim l As Integer
l = Datagrid1.Items.Count - 1
Trace.Warn("-------L :-" & l.ToString & "-")
For i = 0 To l
'
If CType(Datagrid1.Items(i).FindControl("SelectionBox"),
CheckBox).Checked Then
sKeys.Add(Datagrid1.DataKeys(Datagrid1.Items(i).ItemIndex).ToString)
End If
Next
'If sKeys.Count <> 0 Then AjouteItems(sKeys)
End If
End Sub
j'avoue ne pas bien comprendre la logique de ce qui est ecrit donc je suis
incapable de comprendre d'ou vient l'erreur.
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
Norm
Déja répondu dans microsoft.public.fr.dotnet.adonet
merci de mettre tous les noms des ng séparer par une virgule pour un message et non d'en poster plusieurs.
"jpgr" a écrit dans le message de news:
datagrid et checkbox
je souhaite comprendre de maniere simple (je suis assez nul) comment recuperer les valeurs dans un datagrid en fonction d'un checkbox
j'ai visionne de nombreux exemples d'ailleurs plutot sur des sites US, ils fonctionnent parfaitement mais dès que je les adapte (changement de la chaine de connection + modif pour access) je me heurte a l'erreur suivante : L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection. Nom du paramètre : index Ligne 341 : ' Ligne 342 : If CType(Datagrid1.Items(i).FindControl("SelectionBox"), CheckBox).Checked Then Ligne 343 : sKeys.Add(Datagrid1.DataKeys(Datagrid1.Items(i).ItemIndex).ToString) Ligne 344 : End If Ligne 345 : Next
Fichier source : f:inetpubwwwrootadminvueProd_Compat.aspx.vb Ligne
:
343
une piste a vous soumettre mon datagrid n'affiche pas toute la base mais seulement les
enregistrements
correspondant à un droplist. Donc je resume : 1/ l'utilisateur choisi dans un droplist une famille de produit 2/ le datagrid affiche les enregistrement pour cette famille 3/ l'utilisateur peut alors utiliser des checkbox dans ce datagrid pour effectuer une action
Private Sub Datagrid1_ItemCommand(ByVal source As Object, ByVal e As DataGridCommandEventArgs) Handles Datagrid1.ItemCommand If e.CommandName = "AjoutBatch" Then
'Dim rowCount As Integer = 0 'Dim gridSelections As StringBuilder = New StringBuilder
'Loop through each DataGridItem, and determine which CheckBox controls 'have been selected. 'Dim Datagrid1Item As DataGridItem 'For Each Datagrid1Item In Datagrid1.Items
'Dim myCheckbox As CheckBox = CType(Datagrid1Item.Cells(0).Controls(1), CheckBox) 'If myCheckbox.Checked = True Then 'rowCount += 1 'gridSelections.AppendFormat("The checkbox for {0} was selected<br>", _ 'Datagrid1.DataKeys(Datagrid1Item.ItemIndex).ToString()) 'End If 'Next 'gridSelections.Append("<hr>") 'gridSelections.AppendFormat("Total number selected is: {0}<br>", rowCount.ToString()) 'Message.Text = gridSelections.ToString()
Dim ligne As DataGridItem Dim sKeys As New ArrayList Dim i As Integer Dim l As Integer l = Datagrid1.Items.Count - 1 Trace.Warn("-------L :-" & l.ToString & "-") For i = 0 To l ' If CType(Datagrid1.Items(i).FindControl("SelectionBox"), CheckBox).Checked Then sKeys.Add(Datagrid1.DataKeys(Datagrid1.Items(i).ItemIndex).ToString) End If Next
'If sKeys.Count <> 0 Then AjouteItems(sKeys) End If
End Sub
j'avoue ne pas bien comprendre la logique de ce qui est ecrit donc je
suis
incapable de comprendre d'ou vient l'erreur.
Merci pour votre aide
Déja répondu dans microsoft.public.fr.dotnet.adonet
merci de mettre tous les noms des ng séparer par une virgule pour un message
et non d'en poster plusieurs.
"jpgr" <aspx_is_at_your_command@Nowhereman.net> a écrit dans le message de
news:u9A6LP0XEHA.316@TK2MSFTNGP10.phx.gbl...
datagrid et checkbox
je souhaite comprendre de maniere simple (je suis assez nul) comment
recuperer les valeurs dans un datagrid en fonction d'un checkbox
j'ai visionne de nombreux exemples d'ailleurs plutot sur des sites US, ils
fonctionnent parfaitement mais dès que je les adapte (changement de la
chaine de connection + modif pour access)
je me heurte a l'erreur suivante :
L'index était hors limites. Il ne doit pas être négatif et doit être
inférieur à la taille de la collection.
Nom du paramètre : index
Ligne 341 : '
Ligne 342 : If CType(Datagrid1.Items(i).FindControl("SelectionBox"),
CheckBox).Checked Then
Ligne 343 :
sKeys.Add(Datagrid1.DataKeys(Datagrid1.Items(i).ItemIndex).ToString)
Ligne 344 : End If
Ligne 345 : Next
Fichier source : f:inetpubwwwrootadminvueProd_Compat.aspx.vb Ligne
:
343
une piste a vous soumettre
mon datagrid n'affiche pas toute la base mais seulement les
enregistrements
correspondant à un droplist.
Donc je resume :
1/ l'utilisateur choisi dans un droplist une famille de produit
2/ le datagrid affiche les enregistrement pour cette famille
3/ l'utilisateur peut alors utiliser des checkbox dans ce datagrid pour
effectuer une action
Private Sub Datagrid1_ItemCommand(ByVal source As Object, ByVal e As
DataGridCommandEventArgs) Handles Datagrid1.ItemCommand
If e.CommandName = "AjoutBatch" Then
'Dim rowCount As Integer = 0
'Dim gridSelections As StringBuilder = New StringBuilder
'Loop through each DataGridItem, and determine which CheckBox controls
'have been selected.
'Dim Datagrid1Item As DataGridItem
'For Each Datagrid1Item In Datagrid1.Items
'Dim myCheckbox As CheckBox = CType(Datagrid1Item.Cells(0).Controls(1),
CheckBox)
'If myCheckbox.Checked = True Then
'rowCount += 1
'gridSelections.AppendFormat("The checkbox for {0} was selected<br>", _
'Datagrid1.DataKeys(Datagrid1Item.ItemIndex).ToString())
'End If
'Next
'gridSelections.Append("<hr>")
'gridSelections.AppendFormat("Total number selected is: {0}<br>",
rowCount.ToString())
'Message.Text = gridSelections.ToString()
Dim ligne As DataGridItem
Dim sKeys As New ArrayList
Dim i As Integer
Dim l As Integer
l = Datagrid1.Items.Count - 1
Trace.Warn("-------L :-" & l.ToString & "-")
For i = 0 To l
'
If CType(Datagrid1.Items(i).FindControl("SelectionBox"),
CheckBox).Checked Then
sKeys.Add(Datagrid1.DataKeys(Datagrid1.Items(i).ItemIndex).ToString)
End If
Next
'If sKeys.Count <> 0 Then AjouteItems(sKeys)
End If
End Sub
j'avoue ne pas bien comprendre la logique de ce qui est ecrit donc je
Déja répondu dans microsoft.public.fr.dotnet.adonet
merci de mettre tous les noms des ng séparer par une virgule pour un message et non d'en poster plusieurs.
"jpgr" a écrit dans le message de news:
datagrid et checkbox
je souhaite comprendre de maniere simple (je suis assez nul) comment recuperer les valeurs dans un datagrid en fonction d'un checkbox
j'ai visionne de nombreux exemples d'ailleurs plutot sur des sites US, ils fonctionnent parfaitement mais dès que je les adapte (changement de la chaine de connection + modif pour access) je me heurte a l'erreur suivante : L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection. Nom du paramètre : index Ligne 341 : ' Ligne 342 : If CType(Datagrid1.Items(i).FindControl("SelectionBox"), CheckBox).Checked Then Ligne 343 : sKeys.Add(Datagrid1.DataKeys(Datagrid1.Items(i).ItemIndex).ToString) Ligne 344 : End If Ligne 345 : Next
Fichier source : f:inetpubwwwrootadminvueProd_Compat.aspx.vb Ligne
:
343
une piste a vous soumettre mon datagrid n'affiche pas toute la base mais seulement les
enregistrements
correspondant à un droplist. Donc je resume : 1/ l'utilisateur choisi dans un droplist une famille de produit 2/ le datagrid affiche les enregistrement pour cette famille 3/ l'utilisateur peut alors utiliser des checkbox dans ce datagrid pour effectuer une action
Private Sub Datagrid1_ItemCommand(ByVal source As Object, ByVal e As DataGridCommandEventArgs) Handles Datagrid1.ItemCommand If e.CommandName = "AjoutBatch" Then
'Dim rowCount As Integer = 0 'Dim gridSelections As StringBuilder = New StringBuilder
'Loop through each DataGridItem, and determine which CheckBox controls 'have been selected. 'Dim Datagrid1Item As DataGridItem 'For Each Datagrid1Item In Datagrid1.Items
'Dim myCheckbox As CheckBox = CType(Datagrid1Item.Cells(0).Controls(1), CheckBox) 'If myCheckbox.Checked = True Then 'rowCount += 1 'gridSelections.AppendFormat("The checkbox for {0} was selected<br>", _ 'Datagrid1.DataKeys(Datagrid1Item.ItemIndex).ToString()) 'End If 'Next 'gridSelections.Append("<hr>") 'gridSelections.AppendFormat("Total number selected is: {0}<br>", rowCount.ToString()) 'Message.Text = gridSelections.ToString()
Dim ligne As DataGridItem Dim sKeys As New ArrayList Dim i As Integer Dim l As Integer l = Datagrid1.Items.Count - 1 Trace.Warn("-------L :-" & l.ToString & "-") For i = 0 To l ' If CType(Datagrid1.Items(i).FindControl("SelectionBox"), CheckBox).Checked Then sKeys.Add(Datagrid1.DataKeys(Datagrid1.Items(i).ItemIndex).ToString) End If Next
'If sKeys.Count <> 0 Then AjouteItems(sKeys) End If
End Sub
j'avoue ne pas bien comprendre la logique de ce qui est ecrit donc je