Існує не ASP: HiddenField, які можуть бути використані в GridView, тому мені було цікаво, що буде працювати подібно до цього.
Мої міркування про те, що я хочу це, у мене єButtonField, що запускає OnRowCommand. Звідти я можу зрозуміти, який рядок було вибрано, але я не можу отримати значення тексту з ButtonField, щоб побачити дані, які були пов'язані з ним (через DataTextField).
Моє рішення для цього було мати BoundField і просто отримати текст значення з нього замість цього, оскільки я вже знав, який рядок був обраний. Це спрацювало, але мені потрібно, щоб він був прихований.
Хтось запропонував використовувати вкладене HiddenFieldв TemplateField, але у мене виникли проблеми з отриманням значення тексту з цього HiddenField. Чи є спосіб отримати доступ до керування в TemplateField, щоб отримати текстове значення HiddenField?
Якщо у когось є якісь пропозиції щодо альтернатив, це також буде здорово.
Дякую,
Метт
Відповіді:
1 для відповіді № 1Ви можете скористатись DataKeyNames власності на Gridview.
gridView.DataKeyNames = { "values", "you", "want "};
а потім доступ до них можна отримати таким чином:
gridView.DataKeys[rowId].Values["value"];
2 для відповіді № 2
Можна використовувати поле шаблону з командоюArgument, що дорівнює ID запису / рядку.
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="false"
CommandName="SomeCommand" Text="Button" CommandArgument="<%# Eval("SomeID") %"></asp:LinkButton>
</ItemTemplate>
Потім у події обробки команд рядка ви можете отримати це значення за допомогою e.CommandArgument
0 для відповіді № 3
чи можна додати іншу ID колонку, як aунікальний представник для запису (рядка)? Цей стовпець ідентифікатора може бути встановлений за допомогою стилю: display = none, щоб приховати його, але ідентифікатор все одно знаходиться у формі HTML.
а потім ви зможете отримати значення цього стовпця ідентифікатора, який буде оброблено далі.
сподіваюся, що це допоможе,
hadi