GridView et templatefield
Bonjour a tous,
J'ai un problème sur une GridView dans un usercontrol :
Ma gridView possede 4 colonne, une colonne de texte, et 3 colonnes de Checkbox.
--------------------------------------------------------------
Libelle | Demander | Fournie | Manquant |
--------------------------------------------------------------
Mon libellé 1 | checkbox | checkbox | checkbox |
Mon libellé 2 | checkbox | checkbox | checkbox |
Mon libellé 3 | checkbox | checkbox | checkbox |
Mon libellé 4 | checkbox | checkbox | checkbox |
Mon libellé 5 | checkbox | checkbox | checkbox |
J'ai un bouton valider qui parcours les lignes de la gridview et qui me génère un enregistrement du type "[idLigne-Demander:True-Fournie:False-Manquant:True]" pour chaque ligne.
"Demander:True" signifie que la cellule 1 de la ligne en cours est cochée.
"Fournie:True" signifie que la cellule 2 de la ligne en cours est cochée.
"Manquant:True" signifie que la cellule 1 de la ligne en cours est cochée.
Lors de la génération, je récupère bien les valeurs pour les cellules 1 et 2 mais pas pour la colonne 3.
Ce qui est étrange, c'est que parfois il me retourne bien la bonne valeur.
Voici le code qui parcours la gridView :
(ici Label1 est dans la cellule 3 pour récupérer l'identifiant de mon enregistrement)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
public string getValues()
{
string temp = "";
for (int x = 0; x < GridView1.Rows.Count; x++)
{
GridViewRow r = GridView1.Rows[x];
TableCell c1 = r.Cells[1];
TableCell c2 = r.Cells[2];
TableCell c3 = r.Cells[3];
CheckBox cb1 = ((CheckBox)c1.FindControl("Checkbox1"));
CheckBox cb2 = ((CheckBox)c2.FindControl("Checkbox2"));
CheckBox cb3 = ((CheckBox)c3.FindControl("Checkbox3"));
string id = ((Label)c3.FindControl("Label1")).Text;
Boolean De = cb1.Checked;
Boolean Fo = cb2.Checked;
Boolean Mq = cb3.Checked;
if(De || Fo || Mq)
temp += "["+id+"-Demander:"+De+"-Fournie:"+Fo+"-Manquant:"+Mq+"]";
}
return temp;
} |
Merci par avance de vos lumières !