0

没有可以在 GridView 中使用的 asp:HiddenField 所以我想知道什么会与此类似。

我想要这个的原因是我有一个触发 OnRowCommand 的 ButtonField。从那里我可以确定选择了哪一行,但我无法从 ButtonField 检索文本值以查看绑定到它的数据(通过 DataTextField)。

我对此的解决方案是拥有一个 BoundField 并从中检索文本值,因为我已经知道选择了哪一行。这行得通,但我需要隐藏它。

有人建议使用嵌套在 TemplateField 中的 HiddenField,但我无法从该 HiddenField 中检索文本值。有没有办法访问 TemplateField 中的控件以获取 HiddenField 的文本值?

如果有人对替代品有任何建议,那也很好。

谢谢,
马特

4

3 回答 3

2

您可以使用模板字段,其 commandArgument 等于记录/行的 ID。

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

然后,在行命令处理事件中,您可以通过 e.CommandArgument 获取该值

于 2009-07-06T15:40:16.267 回答
1

您可以使用 Gridview 上的DataKeyNames属性。

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

然后你可以像这样访问它们:

gridView.DataKeys[rowId].Values["value"];
于 2009-07-06T15:33:20.380 回答
0

是否可以添加另一个 ID 列,作为记录(行)的唯一代表?该特定 ID 列可以设置为 style: display=none 以隐藏它,但 ID 仍然在 HTML 表单中。

然后您可以检索要进一步处理的特定 ID 列的值。

希望这可以帮助,

哈迪

于 2009-07-06T15:31:05.500 回答