ASP.NET GridView问题

时间:2009-05-15 07:42:57

标签: asp.net

我有一个gridview,我已经自己定义了列并关闭了自动生成但现在我遇到了无法访问GridView.SelectedRow.DataItem的问题。

现在结果是null,当它在启用自动生成时有一个值..

编辑: 我需要的是一种方法来保存行的ID而不向用户显示ID,所以如果有任何方法可以做到这一点?

2 个答案:

答案 0 :(得分:5)

我猜测在使用DataBinding时,DataItem只能正确填充。 你在使用DataBinding吗?

好的url

  

GridView(实际上,我们所有的   数据控件)不保存数据   回发中的项目。这减少了   ViewState(如果对象是偶数   serializable)并启用垃圾   集合发生和清理你的   对象。所以,当你点击   按钮回发,GridView有   不称为DataBind,因此也称为   数据项不存在。这是什么   你发现了。

猜测你正在从回发中读取价值,可能就是问题所在。

如果您已为项目设置(主要)密钥,请尝试使用SelectedValue。 我一直都在使用它而且它有效。 msdn about SelectedValue

答案 1 :(得分:1)

您可以创建一个新的隐藏模板列,该列具有带ID的标签。并在cs文件中对行使用.FindControl。

你在gridview上也有DataKeys属性,我觉得你也想做什么