获取不可见的边界字段的值

本文关键字:边界 字段 获取 | 更新日期: 2023-09-27 18:34:49

我的网格视图中有以下两个边界字段

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

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

获取不可见的边界字段的值

您不能访问不可见的 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;
       ...
       }
  }

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

DataKeyNames="ProductId"

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

GridView1.DataKeys[row_index]["ProductId"]