/ / Równoważność asp: HiddenField dla GridView - asp.net, gridview, hidden-field, databound, templatefield

Równoważność asp: HiddenField dla GridView - asp.net, gridview, hidden-field, databound, templatefield

Nie ma asp: HiddenField, który może być użyty w GridView, więc zastanawiałem się, co będzie działało podobnie.

Moje rozumowanie, że chcę tego, to mamButtonField, który wyzwala OnRowCommand. Stamtąd mogę dowiedzieć się, który wiersz został wybrany, ale nie mogę pobrać wartości tekstowej z ButtonField, aby zobaczyć dane, które były z nią związane (przez DataTextField).

Moim rozwiązaniem było posiadanie BoundField i po prostu pobranie z niego wartości tekstowej, ponieważ wiedziałem już, który wiersz został wybrany. To zadziałało, ale potrzebuję go ukryć.

Ktoś zasugerował użycie zagnieżdżonego HiddenFieldw obrębie TemplateField, ale miałem problemy z pobieraniem wartości tekstowej z tego HiddenField. Czy istnieje jakiś sposób uzyskania dostępu do formantu w TemplateField, aby uzyskać wartość tekstową HiddenField?

Jeśli ktoś ma jakieś sugestie dotyczące alternatyw, które również byłyby świetne.

Dzięki,
Matt

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz użyć DataKeyNames właściwość w Gridview.

gridView.DataKeyNames = { "values", "you", "want "};

a następnie możesz uzyskać do nich dostęp w ten sposób:

gridView.DataKeys[rowId].Values["value"];

2 dla odpowiedzi nr 2

Możesz użyć pola szablonu z argumentem commandArgument równym identyfikatorowi rekordu / wiersza.

<ItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="false"
CommandName="SomeCommand" Text="Button" CommandArgument="<%# Eval("SomeID") %"></asp:LinkButton>
</ItemTemplate>

Następnie, w zdarzeniu obsługi polecenia wiersza można uzyskać tę wartość przez e.CommandArgument


0 dla odpowiedzi № 3

czy można dodać inną kolumnę identyfikatora jakounikalny przedstawiciel rekordu (rzędu)? Ta konkretna kolumna ID może być ustawiona ze stylem: display = none, aby ją ukryć, ale nadal identyfikator znajduje się w formularzu HTML.

a następnie możesz odzyskać wartość tej konkretnej kolumny ID, która będzie dalej przetwarzana.

mam nadzieję że to pomoże,

hadi