最近在使用asp.net2.0中发现GridView与DataGrid在数据访问上的区别相当大,对于DataGrid访问每一行中的数据项通常有两种方法:
<asp:BoundColumn DataField="ID" Visible="False"/>
//后台处理
int id = int.Parse(Grid1.Items[index].Cells[0].Text);
//或采用
int id = (int)((DataRowView)Grid1.Items[index].DataItem).Row["ID"]);
对于GridView两种方法均不见效,
Visible=Flase的列不再Render,所以客户端不可能访问,对于DataItem,除了RowDataBound几个事件中可以使用,
ViewState中不在保存DataItem,因此,对于GridView如果想知道某一行的值,不可以将其设为Visile=false,如果确实不
想在界面中显示这一列的值,可以用DataKeyNames和DataKeys结合完成一些特别的数据访问.//后台处理
int id = int.Parse(Grid1.Items[index].Cells[0].Text);
//或采用
int id = (int)((DataRowView)Grid1.Items[index].DataItem).Row["ID"]);
<asp:GridView id="GridView1" Runat="Server" DataKeyNames="ObjectID">



</asp:GridView>
//代码中处理选中行的id
int id = int.Parse(GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString());



</asp:GridView>
//代码中处理选中行的id
int id = int.Parse(GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString());
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 电商平台中订单未支付过期如何实现自动关单?
· 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
· 如果单表数据量大,只能考虑分库分表吗?
· 一款让 Everything 更加如虎添翼的 .NET 开源辅助工具!
· (原创)[开源][.Net Framework 4.5] SimpleMVVM(极简MVVM框架)更
· 冲压车间软件实施
· 干货分享!MCP 实现原理,小白也能看懂