2009-07-06 71 views
0

沒有可以在GridView中使用的asp:HiddenField,所以我想知道哪種方法可以工作。GridView的asp:HiddenField的等價性

我想要這個的推理是我有一個ButtonField觸發一個OnRowCommand。從那裏我可以找出哪一行被選中,但我無法從ButtonField中檢索文本值,以查看綁定到它的數據(通過DataTextField)。

我對此的解決方案是有一個BoundField,只是從它檢索文本值,因爲我已經知道哪一行被選中。這工作,但我需要它隱藏。

有人建議使用嵌套在TemplateField中的HiddenField,但是我有麻煩從該HiddenField中檢索文本值。是否有某種方法可以訪問TemplateField中的控件以獲取HiddenField的文本值?

如果有人對替代品有任何建議,那也會很棒。

謝謝
馬特

回答

1

您可以使用在GridView中DataKeyNames財產。

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

,然後就可以像這樣訪問他們:

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

是有可能增加另一個ID列,作爲一個記錄(行)的唯一代表?可以使用style:display = none來設置該特定ID列,以便隱藏它,但該ID仍在HTML表單中。

然後您可以檢索該特定ID列的值以進一步處理。

希望這有助於

哈迪

2

您可以使用模板字段與commandArgument等於記錄/行的標識。

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

然後,在命令行處理事件時,可以通過e.CommandArgument

獲取價值