Comment obtenir la valeur de la cellule dans le contrôle GridView (SANS l'aide de la cellule de l'index)
comment obtenir la valeur de la cellule de contrôle gridview sans l'aide de la cellule d'indice?
Disons que le premier nom de la colonne dans ma table est "RowNumber".
au lieu d'utiliser
string name = GridView1.Rows[0].Cells[0].Text;
Quelque chose comme
string name = GridView1.Rows[0].Cells["RowNumber"].Text;
- Veuillez consulter la stackoverflow.com/questions/9715983/...
- Double Possible de Comment obtenir la valeur de la cellule par nom de colonne non pas par l'index dans GridView dans asp.net
Vous devez vous connecter pour publier un commentaire.
Vous pourriez lancer la GridViewRow de DataItem propriété dans un DataRowView, puis de référence, les noms de colonne:
Vous ne pouvez pas le faire à partir de la
Cells
collection, car ils sont juste TableCell objets, et ils ne savent rien sur les données sous-jacentes.DataItem propriété représente les valeurs de cette ligne à partir de la source de données sous-jacente, c'est ce que vous souhaitez traiter.
if (GridView1.Rows[0].RowType == DataControlRowType.DataRow)
). La ligne zéro est probablement une ligne d'en-tête, qui n'a pas de données qui y sont associées (d'ailleurs, pour info, vous ne pouvez pas faire des sauts de ligne dans les commentaires ici).Vous pouvez utiliser datakeys pour accéder à toutes les données que vous voulez à partir de l'index de ligne.
Dans le balisage de la gridview, ajouter tous les champs que vous souhaitez être en mesure d'accéder à la gridview.
Ces datakeys peut être consulté dans le code-behind, avec l'index de ligne
voici une fonction que j'ai écrit. puisque nous sommes généralement d'obtenir la même liste de champs, encore et encore, j'ai mis en cache à la recherche d'index.
à utiliser-il faire quelque chose comme