2009-07-06 81 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

获取价值