Obtenir Gridview Ligne Par Datakeynames
J'ai un gridview et il a datakeynames="Id"
J'ai l'Id dans le fichier de code. Maintenant, je veux obtenir la ligne d'un Id spécifique.
Par exemple Id=1 alors je veux obtenir la ligne de contrôle gridview qui a l'Id=1
J'ai utilisé ce code:
foreach (DataKey key in gdvMainList.DataKeys)
{
if (Convert.ToInt32(key.Value) == consentReleaseId)
{
gdvMainListRow = gdvMainList.Rows[index];
break;
}
index++;
}
Est-il une meilleure approche?
Vous devez vous connecter pour publier un commentaire.
Une autre option serait de faire une boucle par les éléments de la GridView jusqu'à ce que vous trouver la clé correspondante.
Une autre option serait de lier l'ID de ligne dans un élément dans le contrôle gridview ligne. Le plus souvent cela se produit sur une action de lien ou sur le bouton CommandArgument propriété.
quelque chose comme ça. Ensuite, vous pouvez accéder à l'élément et obtenir l'ID de Ligne sans boucle.
Une chose que vous devez être prudent avec votre apporach est, si vous avez la pagination dans votre gridview, et si vous êtes dans une page différente, vous pourriez finir vers le haut en tirant sur la mauvaise ligne ou la ligne peut ne pas être trouvé.
Au lieu de boucle, vous pouvez utiliser une requête linq sur votre source de données comme
si votre source de données est une liste,
obj = lObjs.Où( i => je.Id == consentReleaseId).First();
Si vous voulez changer quelque chose dans la grille, vous pouvez le modifier dans le fichier obj et de modifier la source de données.