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

C# 获取不可见的边界字段的值,c#,asp.net,C#,Asp.net,我的gridview中有以下两个边界字段 <asp:BoundField DataField="ProductId" HeaderText="ID" HeaderStyle-HorizontalAlign="Left" Visible = "false" /> <asp:BoundField DataField="ProductDescription" HeaderText="product Description" HeaderStyle-HorizontalAlign="

我的gridview中有以下两个边界字段

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


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

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

DataKeyNames="ProductId"
然后在代码隐藏中,您可以获得它

GridView1.DataKeys[row_index]["ProductId"]

对于IDs,最好在GridView上使用
DataKeyNames
属性

DataKeyNames="ProductId"
然后在代码隐藏中,您可以获得它

GridView1.DataKeys[row_index]["ProductId"]

无法访问不可见的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>

无法访问不可见的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>