Asp.net 数据可以保存在动态绑定的GridView中吗;什么是看不见的领域?
我有一个查询表达式,我正在页面加载中绑定到GridView。我要在SelectedIndexChaned事件中捕获的数据位于如下定义的BoundField中:Asp.net 数据可以保存在动态绑定的GridView中吗;什么是看不见的领域?,asp.net,data-binding,gridview,Asp.net,Data Binding,Gridview,我有一个查询表达式,我正在页面加载中绑定到GridView。我要在SelectedIndexChaned事件中捕获的数据位于如下定义的BoundField中: <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" Visible="False" /> 如果我设置Visible=“True”,则获取此数据不会有
<asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True"
SortExpression="ID" Visible="False" />
如果我设置Visible=“True”,则获取此数据不会有问题。有没有一种方法可以隐藏ID字段,但仍然可以获取数据 取决于您试图获取数据的方式。如果这是数据源中每行唯一的ID字段,请在GridView声明中使用
DataKeyNames=“ID”
。然后,在代码隐藏中,无论何时需要ID,都可以使用以下行:
string ID = GridView1.Rows[GridRowIndex].DataKeys[0].Value.ToString();
您还可以将一个BoundField转换为TemplateField,并在其中放置一个HiddenField以存储ID。如下所示:
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="someOtherDataLabel" runat="server" />
<asp:HiddenField ID="IDHiddenField" runat=server />
</ItemTemplate>
</asp:TemplateField>
然后,您可以在GridView的
RowDataBound
事件中使用FindControl()
来存储ID值。取决于您试图获取数据的方式。如果这是数据源中每行唯一的ID字段,请在GridView声明中使用DataKeyNames=“ID”
。然后,在代码隐藏中,无论何时需要ID,都可以使用以下行:
string ID = GridView1.Rows[GridRowIndex].DataKeys[0].Value.ToString();
您还可以将一个BoundField转换为TemplateField,并在其中放置一个HiddenField以存储ID。如下所示:
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="someOtherDataLabel" runat="server" />
<asp:HiddenField ID="IDHiddenField" runat=server />
</ItemTemplate>
</asp:TemplateField>
然后,您可以在GridView的
RowDataBound
事件中使用FindControl()
来存储ID值。第二种方法非常有效。Intellisense不同意第一个。非常感谢。你的第二条路很有魅力。Intellisense不同意第一个。非常感谢。