2009-07-10 46 views
2

私は、初期ロード時に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だったと思うことがわかります

ストーリーのモラルは、ユーザーがページに戻るために戻るボタンをクリックしたときにビューステートが保存されているようですが、表示されたテーブルは表示されません。

答えて

0

検索した後、私は「couldn本当に妥当な答えを見つけることはできません。しかし、3.5プレビューコントロールw/asp.net 2.0を使用することができますので、私は履歴コントロールをページに追加し、バックボタンの問題を処理させるようにしました。

は、それが問題に

感謝を解決したように見えます!

0

どのようなことが起こったのかは、エラーが言うことです。ユーザーが[戻る]ボタンをクリックした後に使用しようとするコントロールは、キャッシュからロードされているため元のものではありません。これはあなたがそこに持っている揮発性のデータか、私が知らないタイムスタンプによって識別できます。あなたは何ができるか

は、そのページに

<%@ Page EnableEventValidation="false" %> 

を入れて、それが働いていた場合、それはあなたのページに何かを壊した天気をお知らせすることです...

+0

これはトリックです。問題の周りに別の方法がある場合は、検証をオフにしないでください。 – John

1

このエラーは、ブラウザのキャッシュされたコンテンツに関連しています。そのため、このページをブラウザにキャッシュできないようにすることが解決策です。

+0

そのページのトラフィックの量によっては、キャッシュするのをやめるために旅行するのが悪い道のりである可能性があるため、 – Peter

関連する問題