0

我的 gridview 中有以下两个 BoundFields

<asp:BoundField DataField="ProductId" HeaderText="ID" HeaderStyle-HorizontalAlign="Left" Visible = "false" />
 <asp:BoundField DataField="ProductDescription" HeaderText="product Description" HeaderStyle-HorizontalAlign="Left" />

如果将第一个绑定字段设置为可见 false,如何获取该字段的值?

4

2 回答 2

2

您无法访问不可见的 BoundField 的值。您必须在其中使用TemplateField和添加HiddenField控件并绑定其 Value 属性。

标记,

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:HiddenField ID="HiddenField1" runat="server" 
                    Value='<%# Eval("ProductId") %>' />
                 ....
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

后面的代码从每行第一个单元格的 HiddenField 控件中获取值。

 foreach (GridViewRow row in GridView1.Rows)
  {
    if (row.RowType == DataControlRowType.DataRow)
      {
       HiddenField productid = row.Cells[0].FindControl("HiddenField1") as HiddenField;
       ...
       }
  }
于 2012-05-22T01:34:08.357 回答
1

使用 ID 最好DataKeyNames在 GridView 上使用属性

DataKeyNames="ProductId"

然后在后面的代码中你可以得到它

GridView1.DataKeys[row_index]["ProductId"]
于 2012-05-22T01:33:59.463 回答