私は、初期ロード時にGridViewにデータバインドする単純なページを持っています。このグリッドビューではソートとページングが有効になっており、UpdatePanelにも囲まれています。に移動しASP.Net 2.0:ブラウザのバックボタン - 無効なポストバックまたはコールバック引数
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
- クリック 特定のページに変更するには、ページャは(5言うことができます)リンク上
- クリック数:ユーザーが次の、私はこのエラーが発生した処理を行い
別のページ
- ブラウザの戻るボタンを押して、GridViewのページに戻る
- グリッドが元の状態に戻されるようになりました original sta TEは ブラウザから(1ページ)それを追跡していなかった、とそう ユーザーが がエラー
誰もがこれを引き起こすかを知るには、その結果、再び5ページに移動するためにクリック!同じページをクリックするだけで問題になるようです。帰国時に別のページがクリックされた場合は問題ありません。列がソートされている場合は、戻り値の訪問時に再度ソートされます。これも問題ありません。私は、ページを2度クリックすることが問題を引き起こしていることについて具体的には分かりません。ここで
は、ページャ用のコードです:
protected void gvResults_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvResults.DataSource = SearchResults;
gvResults.PageIndex = e.NewPageIndex;
gvResults.DataBind();
}
gvResultsがGridViewコントロールで、と「にsearchResults」ビューステートに格納されたリストです。
編集
ページにユーザーが戻る(ページ1に戻ります)するときにGridViewは5ページが表示されていないが、何らかの理由によりブラウザがビューステートを保存したことが表示され、したがって、ページ4をクリックしてページングイベントのコードを調べると、表示されているコンテンツがページ1のものであったとしても、そのページが5だったと思うことがわかります
ストーリーのモラルは、ユーザーがページに戻るために戻るボタンをクリックしたときにビューステートが保存されているようですが、表示されたテーブルは表示されません。
これはトリックです。問題の周りに別の方法がある場合は、検証をオフにしないでください。 – John