我试图在asp.net中更新我的gridview时出现异常

时间:2011-09-19 13:21:14

标签: c# asp.net gridview linqdatasource

当我尝试更新使用<asp:LinqDataSource>连接的gridview并在此数据源中启用更新和删除时,我得到一个例外告诉我:

  

javaScript运行时错误:   Sys.WebForms.PageRequestManagerServerErrorException:找不到   与存储的原始值中的给定键匹配的行   ViewState中。确保&#39;键&#39;字典包含唯一键   与前一个Select返回的行对应的值   操作

如何解决此异常?

4 个答案:

答案 0 :(得分:12)

您应该在Gridview属性中添加DataKeyNames="ID" ID是数据库表的键列。

答案 1 :(得分:0)

可能是在循环或使用gridview的ViewState时删除了一些行。尝试使用虚拟数据视图删除所需的行。

答案 2 :(得分:0)

就像你在将页面发布回服务器时将Grid重新绑定到其他一些数据一样 - 在页面呈现时,ViewState中的键集合会保留,用户选择一行,但重新绑定在服务器上用户选择的网格和密钥在密钥集合中不可用。

答案 3 :(得分:0)

在升级旧的VB.net项目时遇到错误,甚至在旧版本中工作,新项目也是VB.Net&#34; DataKeyName&#34; CASE-SENTIVE ....

这意味着: KeyId KeyID

不同

... Dammm