開発中、ページングでデータをリストに表示し、クエリ結果のレコードを変更、削除などの操作を行うことができるメイン ページに戻ることがよくあります。このとき、クエリページの条件と現在のページが失われることがよくありますが、ページのステータスを保存することで、クエリページの条件とページング情報が失われるという問題を解決できます。
通常、Page クラスの保護されたオーバーライド オブジェクト LoadPageStateFromPersistenceMedium() をオーバーライドします。
protected オーバーライド void SavePageStateToPersistenceMedium(オブジェクト状態),
protected オーバーライド void RaisePostBackEvent(IPostBackEventHandler sourceControl, string eventArgument),
protected オーバーライド System.Collections.Specialized.NameValueCollection DeterminePostBackMode()、解決する 4 つのメソッド。ただし、RaisePostBackEvent リライトでページを復元するときは、イベントの再実行を防ぐために、base.RaisePostBackEvent(sourceControl,eventArgument); を実行しないと判断するのが一般的ですが、これにより、次のような予期せぬ事態が発生することがよくあります。変更結果が更新されないため、削除レコードは更新されません。これによりパフォーマンスは向上しますが、データの更新ではこの問題を解決できません。方法は非常に簡単です。つまり、RaisePostBackEvent を書き換えず、状態が復元されたときにクエリ ページで最後のポストバック イベントを再実行します。結果が更新されると、ページ条件の値と現在のページのインデックスが両方とも保持されます。