3

このデータソースを使用して接続されているグリッドビューを更新しようとすると、<asp:LinqDataSource>更新と削除が有効になります。例外が発生しました。

javaScriptランタイムエラー:Sys.WebForms.PageRequestManagerServerErrorException:ViewStateに保存されている元の値で指定されたキーに一致する行が見つかりませんでした。'keys'ディクショナリに、前のSelect操作から返された行に対応する一意のキー値が含まれていることを確認してください。

この例外を解決するにはどうすればよいですか?

4

4 に答える 4

13

Gridviewプロパティに追加する必要DataKeyNames="ID"がありますIDはデータベーステーブルのキー列です。

于 2011-09-19T15:11:40.527 に答える
0

グリッドビューのViewStateをループまたは使用しているときに、いくつかの行を削除している可能性があります。ダミーのデータビューを取得して、必要な行を削除してみてください。

于 2011-09-19T13:25:55.630 に答える
0

ページがサーバーにポストバックされたときにグリッドを他のデータに再バインドしたのと同じです。キーのコレクションはページのレンダリング時にViewStateに保持され、ユーザーは1つの行を選択しますが、サーバーに戻ってグリッドを再バインドします。ユーザーが選択したキーは、キーコレクションでは使用できません。

于 2011-09-19T17:10:31.180 に答える
0

古いVB.netプロジェクトをアップグレードするときにエラーが発生しました。古いプロジェクトでも機能し、新しいプロジェクトもVB.Netであり、「DataKeyName」はCASE-SENTIVEです...。

つまり 、 KeyIdはKeyIDと同じではありません

くそー...

于 2015-06-08T11:19:31.007 に答える