私はWeb Forms
プロジェクトに取り組んでいます。これは、この時間のために抽象化がたくさん追加された古いものです。私のページの1つには、ページ区切り付きのグリッドビューがあります。私は、現在の実装を、ユーザーが次のページに行くときに、現在のgridviewページで何かが変更されているかどうかをチェックして拡張しようとしています。私は2つのセッション変数を使ってこれを行うことができたと思う。私の問題はRowDataBound
イベントに移入され、それらの一つであり、そして元ASP.NET
セッション上で、いくつかの抽象化があるのでRowDataBound
イベント内の私のコードは次のようになります。これは非常に最後に呼び出されRowDataBoundの最後の呼び出しでSession変数を更新します。
SessionWrapper.GetInstance().RemoveSessionItem("OriginalData");
SessionWrapper.GetInstance().SetSessionItem("OriginalData", someData);
RowDataBound
の実装では、例えば私の場合、私の場合、グリッドビューはページあたり10レコードを表示するので、キーを10回削除した直後に、someData
のコレクションがRowDataBound
の各呼び出しに追加された更新データを追加します。
私がしたいのは、RowDataBound
の最後の実行である方法を見つけて、上記の手順を1回だけ実行することです。私は1ページに10ページがあることを知っているので、カウンタを実装してチェックすることができますが、最後のページに10レコード未満のレコードがある場合、または合計レコードが10レコード未満の場合はどうなりますか?
RowDataBound
の最後の呼び出しがいつ確実に確認されるのですか?
あなたは 'DataBound'イベントを試しましたか?最後の 'RowDataBound'が呼び出された後に起動する可能性があります。 – Tim
@Tim No.「RowDataBound」の後に適切なイベントがあると思っていましたが、どちらを使用できるのかわからなかったので、これは可能な解決策だと思います。それ以外に 'RowDataBound'を使うことは可能でしょうか? – Leron
私の頭の上から外して考えることができる唯一の他の方法は、RowDataBoundがクラスレベル変数を介して呼び出され、最後のセッション項目を実行する回数を追跡することですが、それは深刻なものですクルージングとかなり脆い。私はまずDataBoundを試してみて、それが本当にすべてのRowDataBoundイベントの後に起動するかどうかを調べます。 – Tim