好吧,我有一个gridview,我已经自己定义了列并关闭自动生成但现在我有问题,我无法访问GridView.SelectedRow.DataItem.
因为它现在变成了null,当它在打开自动生成时有一个值.
编辑:我需要的是一种方法来保存行的ID而不向用户显示ID,所以如果有任何方法可以做到这一点?
我猜测只有在使用DataBinding时才能正确填充DataItem.你在使用DataBinding吗?
好的,从这个网址:
GridView(实际上,我们所有的数据控件)都不会在回发之间保存数据项.这减少了ViewState(如果对象甚至可序列化)并且允许垃圾收集发生并清理对象.因此,当您单击按钮发回时,GridView没有调用DataBind,因此您的数据项不存在.这是你发现的.
猜测你正在从回发中读取价值,可能就是问题所在.
如果您已为项目设置(主要)密钥,请尝试使用SelectedValue.我一直都在使用它而且它有效. 关于SelectedValue的msdn