我有一个gridview,我已经自己定义了列并关闭了自动生成但现在我遇到了无法访问GridView.SelectedRow.DataItem的问题。
现在结果是null,当它在启用自动生成时有一个值..
编辑: 我需要的是一种方法来保存行的ID而不向用户显示ID,所以如果有任何方法可以做到这一点?
答案 0 :(得分:5)
我猜测在使用DataBinding时,DataItem只能正确填充。 你在使用DataBinding吗?
好的url:
GridView(实际上,我们所有的 数据控件)不保存数据 回发中的项目。这减少了 ViewState(如果对象是偶数 serializable)并启用垃圾 集合发生和清理你的 对象。所以,当你点击 按钮回发,GridView有 不称为DataBind,因此也称为 数据项不存在。这是什么 你发现了。
猜测你正在从回发中读取价值,可能就是问题所在。
如果您已为项目设置(主要)密钥,请尝试使用SelectedValue。 我一直都在使用它而且它有效。 msdn about SelectedValue
答案 1 :(得分:1)
您可以创建一个新的隐藏模板列,该列具有带ID的标签。并在cs文件中对行使用.FindControl。
你在gridview上也有DataKeys属性,我觉得你也想做什么