2011-01-30 12 views
1

セッションにデータをロードするマスターページがあります。セッションにデータを一度だけロードする

私はif文の内部で、

if (!Page.IsPostBack){ load data from queries into the session}

をマスターページのPage_Initイベントで私のクエリを呼び出すコードの行を入れては、私はすべてのセッションデータのために必要なものを、このですセッションごとに1回だけロードされます。コールバックはどうですか?コールバックでセッションデータをリロードしないようにチェックする必要がありますか?セッションデータの不必要なリロードを避けるためにチェックする必要がある他の条件はありますか?私は条件文の中で一度だけクエリを実行することを考えています。

ありがとうございました。

答えて

1

いいえ、あなたが投稿した内容は、セッションごとにと呼ばれることを保証しません。実際には、ASPXページがGETコマンドで呼び出されるたびに、データがロードされます。

HTTPセッションでデータを1回だけロードする場合は、セッションと仮定してHTTPセッションを意味します。Session_OnStart event handlerを試してください。

+0

Session_OnStartはどのファイルにありますか?マスターページのコードの背後にあるか、他の場所ですか? – frenchie

+0

Nevermind、got it:ルートに移動し、右クリックし、Add Item、グローバルアプリケーションファイルをクリックすると、コードが生成されます。私を正しい軌道に乗せてくれてありがとう。 – frenchie

1

セッション変数がnullかどうかを確認できます。 nullの場合は、データをロードします。 nullでない場合は何もしないでください。

Pablo Santa Cruzが示唆しているように、セッション変数をロードする最適な場所はSessio_OnStartイベントハンドラですが、Page_Initイベントでセッションの有無を確認するだけです。

関連する問題