Bonjour,
J'explique la situation. Il y a un dropdownlist sert à afficher les différente table de ma BD. Dépendant le la valeur du dropdownlist, les valeur de la table en question affiche. Mais il faut que je modifie la BD. Alors j'ai intégrer la fonction delete et update au gridview. C'est une propriété alors c'était assez simple. J'ai réussit a faire le delete. Mais j'ai un problème avec le update.
Voici mon code,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| protected void GV_Enregistrements_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string[] Valeur = new string[20];
int nombrechamp = nombrechamptable(DDL_ChoixTables.SelectedValue, false); //trouve le nombre de champ dans la table
int nombreid = nombreidtable(DDL_ChoixTables.SelectedValue, false);// trouve le nombre de clé primaire et secondaire dans la table
Valeur[0] = GV_Enregistrements.Rows[e.RowIndex].Cells[0].Text;//la clé primaire ne change pas lors du update
for (int i = 1; i < nombrechamp; i++)
{
// e.Row.RowType = DataControlRowType.DataRow;
Valeur[i] = ((TextBox)GV_Enregistrements.Rows[e.RowIndex].Cells[i].Controls[0]).Text; //erreur sur cette ligne
}
UpdateOrAddNewRecord(DDL_ChoixTables.SelectedValue, Champ, Valeur, nombrechamp, nombreid, true);
GV_Enregistrements.EditIndex = -1;
Gridviewrefresh();
} |
Je ne comprends pas pourquoi, mais le débogueur me donne cette erreur:
L'argument spécifié n'était pas dans les limites de la plage des valeurs valides.
Nom du paramètre : index
Je sais très bien que c'est parce que il y a un tableau donc l'index n'est pas dans e tableau. Je sais également que l'erreur se produit lors de la première fois qu'il passe dans la boucle. J'ai essayer de faire de la mêem methode que pour les champ non modifier, c'est à dire
Valeur[i] = GV_Enregistrements.Rows[e.RowIndex].Cells[i].Text;
et il n'y pas d'erreur, mais ceci prends les valeur contenu dans la table pas dans les textbox générer par la fonction update. Alors je ne sais pas si je me trompe, mais je crois que c'est le Controls[0] le problème.
Merci de m'aider à résoudre ce problème.
Partager