Эквивалентность asp:HiddenField для GridView
-
23-08-2019 - |
Вопрос
Не существует asp:HiddenField, который можно было бы использовать в GridView, поэтому мне было интересно, что будет работать аналогично этому.
Моя причина в том, что у меня есть ButtonField, который запускает OnRowCommand.Отсюда я могу выяснить, какая строка была выбрана, но не могу получить текстовое значение из ButtonField, чтобы просмотреть данные, которые были привязаны к нему (через DataTextField).
Мое решение заключалось в том, чтобы иметь BoundField и вместо этого просто получать из него текстовое значение, поскольку я уже знал, какая строка выбрана.Это сработало, но мне нужно, чтобы это было спрятано.
Кто-то предложил использовать HiddenField, вложенный в TemplateField, но у меня возникли проблемы с получением текстового значения из этого HiddenField.Есть ли способ получить доступ к элементу управления внутри TemplateField, чтобы получить текстовое значение HiddenField?
Если у кого-нибудь есть какие-либо предложения по альтернативам, это тоже было бы здорово.
Спасибо,
Мэтт
Решение
Вы можете использовать DataKeyNames недвижимость на Gridview.
gridView.DataKeyNames = { "values", "you", "want "};
и затем вы можете получить к ним доступ следующим образом:
gridView.DataKeys[rowId].Values["value"];
Другие советы
Вы можете использовать поле шаблона с аргументом команды, равным идентификатору записи/строки.
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="false"
CommandName="SomeCommand" Text="Button" CommandArgument='<%# Eval("SomeID") %'></asp:LinkButton>
</ItemTemplate>
Затем в событии обработки команды строки вы можете получить это значение с помощью e.CommandArgument.
можно ли добавить еще один столбец идентификатора в качестве уникального представителя записи (строки)?Этот конкретный столбец идентификатора можно установить с помощью стиля:display=none, чтобы скрыть его, но идентификатор все равно находится внутри формы HTML.
а затем вы можете получить значение этого конкретного столбца идентификатора для дальнейшей обработки.
надеюсь это поможет,
Хади