- - PR -
【ASP.NET】イニシャル処理を一度だけ実行する方法(IsPostBackは使用しています)
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-09-30 18:41
いつもお世話になっております。
質問させて頂きます。 よろしくお願い致します。 OS:WindowsXP Pro 開発環境:VS.NET(ASP.NET C# Webアプリケーション) 当方はASP.NETにてWebアプリケーションの開発を行っております。 件名の通りイニシャル処理を一度だけ実行するようにしたいと思っております。 おそらく皆様はPage_Loadメソッドにて下記のような判定文にて イニシャル処理を行っているかと思います。私も同様です。 ***************************************** if( !IsPostBack ) { ・・・・ } ***************************************** 一方、ページの自動更新には下記のようなHTMLコードを記述しています。 ***************************************** <HEAD> <meta http-equiv="refresh" content='60'> </HEAD> ***************************************** しかし上記のHTMLコードによる自動更新の方法を使用すると IsPostBackプロパティがfalseとなり イニシャル処理が自動更新される度に実行されてしまいます。 F5(更新)ボタンを押すことでも同様です。 どなたかよい方法をご存知ありませんでしょうか? もしご存知でしたらどうかご教授願います。 それでは宜しくお願い致します。 [ メッセージ編集済み 編集者: daikoku 編集日時 2005-09-30 18:42 ] [ メッセージ編集済み 編集者: daikoku 編集日時 2005-09-30 18:43 ] [ メッセージ編集済み 編集者: daikoku 編集日時 2005-09-30 18:44 ] [ メッセージ編集済み 編集者: daikoku 編集日時 2005-09-30 20:01 ] | ||||||||
|
投稿日時: 2005-09-30 20:45
おそらく
<meta http-equiv="refresh" content='60'> で再読み込みした場合、PostじゃなくてGetしたことになるからでしょう。 Sessionに初期化したというフラグを保存しとくというのはどうですか? | ||||||||
|
投稿日時: 2005-09-30 20:47
こんにちは。
つまり再リクエストされても、「イニシャル処理」とやらを走らせたくないということですね? でしたら、セッションにフラグを持たせておくとかかな? もちろんセッションのタイムアウトが来たら終わりですけど。 #編集 かぶってしまった…。 [ メッセージ編集済み 編集者: 囚人 編集日時 2005-09-30 20:48 ] | ||||||||
|
投稿日時: 2005-09-30 20:58
>囚人さん
>burton999さん ご返答ありがとうございます。 実はイニシャル処理の際に行いたいことは そのSessionに初期値を保存することなのです。 結局なにをしたいかといいますと ただ画面の状態(何を表示しているかのフラグ等)を 保持したいということだけですので 特にPage_Loadメソッドでなにかを行いたいという こだわりはありません。 現状の方法では難しいのでしょうか・・・。 | ||||||||
|
投稿日時: 2005-09-30 21:05
Session_Start
_________________ | ||||||||
|
投稿日時: 2005-10-01 17:45
ん? だから Session に初期値を保存したということを、Session に持たせればよいのでは? | ||||||||
|
投稿日時: 2005-10-01 19:12
ってか、入れたら初期化済み、ですよ。Session[識別子] が null だったら「初期化されていない」ですから。 _________________ | ||||||||
|
投稿日時: 2005-10-01 19:20
あれ?私大きな勘違いしてるかな。
から、 イニシャル処理 → 例えば'A'を初期値と設定し、A を表示する。Session["表示すべきもの"] = 'A' Session["初期化済み"] = true; 処理が続く → Session["表示すべきもの"] = 'B' リロード → Session["初期化済み"] が true なら、Session["表示すべきもの"]はそのまま。 でよいと思ったのですが。 |