GridView.DataKeynames 存储 GridView 控件中显示的项目的主键字段的名称。
1) 即使我设置了 DataKeyNames,GridView 仍然不会在 DataKey 对象中存储记录的主键值:
protected void SqlDataSource1_Selected(object sender,
SqlDataSourceStatusEventArgs e)
{
Label2.Text = GridView2.DataKeys[0].Value.ToString();//exception
}
为什么不呢?
2) 我假设当设置 DataKeyNames 时,DataKey 对象存储主键的原始值和新值(假设我们发出更新命令),并且当更新完成时,DataKey 对象会丢弃原始值?
谢谢
最佳答案
我想这已经太晚了...但首先,您尝试在数据检索之后而不是在数据绑定(bind)之后立即获取数据 key 。在 DataBind 之前,DataKey 不会被填充。
其次,数据键不存储新的更新后值。它们是绑定(bind)期间可用内容的副本,存储在 View 状态中,主要用于在回发后定位记录而不进行另一次绑定(bind)。
关于.net - 即使设置了 GridView.DataKeyNames,Gridview.DataKeys[] 仍然为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/632689/