マスターページとメインページの両方でポストバックによって更新されるセッションにカスタムオブジェクトがあります。
ポストバックの後、Session オブジェクトを取得し、その一部またはオブジェクト全体を再構築して変更し、Session にロードし直す必要があります。
このコードは、メイン ページの Page_Load に記述しました。1ページだけでうまくいきます。
同じマスターページを使用して別のページを作成したので、以前と同じようにマスターページでセッション オブジェクトを変更できるようにしたいと考えています。
したがって、セッション処理コードをマスターページの Page_Load に移動するだけでよいと考えました。しかし、メイン ページのコントロール (つまり、リピーター) は、マスターページの Page_Load が発生する前に、OnItemDataBound イベントのハンドラーでセッション オブジェクトにアクセスし、この方法ではセッション オブジェクトの以前の状態のみを取得するため、期待どおりには機能しませんでした。 . (メインページのリピーターにのみ当てはまります。マスターページのリピーターは、セッションにアクセスするときに現在の状態を取得します)
マスターページの Page_PreLoad イベントを使用できると思っていても、Page_PreLoad のポストバック データにアクセスして、それに応じてセッション オブジェクトを更新できましたが、マスターページに Page_PreLoad がないことがわかりました。これを使って。
セッションのどこでオブジェクトを更新すればよいですか?
要約すると、ポストバック データを使用する準備ができており、メイン ページとマスターページのリピーターの OnItemDataBound イベントのどちらもまだ発生していない、マスター ページの分離コード内の場所が必要です。