dedzep
Messages postés54Date d'inscriptionvendredi 1 février 2002StatutMembreDernière intervention 8 février 2007
-
1 juil. 2004 à 10:21
cs_blueghost
Messages postés7Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention30 août 2005
-
11 oct. 2005 à 11:38
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)
J'ai meme trouve ici une solution plutot judicieuse de J-on-Line mais...
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
", _
'Datagrid1.DataKeys(Datagrid1Item.ItemIndex).ToString())
'End If
'Next
'gridSelections.Append("<hr>")
'gridSelections.AppendFormat("Total number selected is: {0}
", 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.