J'ai un contrôle GridView lié à un ObjectDataSource qui retourne une liste d'objets qui ressemblent à ceci:asp.net (C#): obtenir la valeur d'un champ non affiché à partir d'une sélection gridview
public class X {
public string DisplayName {
get;
}
public string Guid {
get;
}
}
I ne souhaite pas afficher la propriété Guid
dans GridView, mais je dois la récupérer lorsqu'un objet est sélectionné.
Impossible de trouver une propriété "DataValueField", comme pour le contrôle ListBox.
Pour contourner ce problème, j'ai essayé de mettre Visible=false
pour la colonne liée à la propriété Guid et obtenir le texte de la cellule de l'objet dans la méthode SelectedIndexChanged
:
protected void GridView1_SelectedIndexChanged(object sender,EventArgs e){
GridViewRow row = GridView1.SelectedRow;
string id = row.Cells[2].Text; // empty
}
Mais cela ne fonctionne pas - apparemment si la colonne n'est pas visible sa propriété Text est laissée vide.
Comment puis-je obtenir le Guid de l'objet sélectionné tout en affichant seulement le DisplayName? Vous ne pouvez pas utiliser row.DataItem pour obtenir l'objet lui-même?
Merci, c'est ce que je cherchais! –