Equivalence d'un asp: HiddenField pour un GridView
-
23-08-2019 - |
Question
Il n'y a pas asp:. HiddenField qui peut être utilisé dans un GridView alors je me demandais ce qui fonctionnerait similaire à cette
Mon raisonnement de vouloir c'est que j'ai un ButtonField qui déclenche une OnRowCommand. De là, je peux comprendre quelle ligne a été sélectionnée, mais je ne peux pas récupérer la valeur de texte à partir du ButtonField pour voir les données qui a été lié à lui (par DataTextField).
Ma solution à c'était d'avoir une BoundField et juste récupérer la valeur de texte à partir de ce lieu, parce que je savais déjà quelle ligne a été sélectionnée. Cela a fonctionné, mais j'ai besoin d'être caché.
Quelqu'un a suggéré d'utiliser un HiddenField niché dans un TemplateField, mais j'eu des problèmes récupérer la valeur de texte de cette HiddenField. Y at-il un moyen d'accéder au contrôle dans le TemplateField pour obtenir la valeur de texte de la HiddenField?
Si quelqu'un a des suggestions pour des solutions de rechange qui seraient super aussi.
Merci,
Matt
La solution
Vous pouvez utiliser le DataKeyNames propriété sur le Gridview.
gridView.DataKeyNames = { "values", "you", "want "};
et vous pouvez y accéder comme ceci:
gridView.DataKeys[rowId].Values["value"];
Autres conseils
Vous pouvez utiliser un champ de modèle avec le CommandArgument égal au l'ID de l'enregistrement / ligne.
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="false"
CommandName="SomeCommand" Text="Button" CommandArgument='<%# Eval("SomeID") %'></asp:LinkButton>
</ItemTemplate>
Ensuite, en cas de traitement de commande de ligne, vous pouvez obtenir cette valeur par e.CommandArgument
est-il possible d'ajouter une autre colonne d'identité, en tant que représentant unique pour un enregistrement (ligne)? Ce particulier colonne ID peut être réglée avec style:. Affichage = none pour le cacher, mais l'ID est à l'intérieur du formulaire HTML
et alors vous pouvez récupérer la valeur de cette colonne particulière d'identification à traiter plus loin.
espérons que cette aide,
hadi