- PR -

【ASP.NET】イニシャル処理を一度だけ実行する方法(IsPostBackは使用しています)

投稿者投稿内容
daikoku
常連さん
会議室デビュー日: 2005/09/22
投稿数: 21
投稿日時: 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 ]
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-09-30 20:45
おそらく
<meta http-equiv="refresh" content='60'>
で再読み込みした場合、PostじゃなくてGetしたことになるからでしょう。
Sessionに初期化したというフラグを保存しとくというのはどうですか?
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-09-30 20:47
こんにちは。

つまり再リクエストされても、「イニシャル処理」とやらを走らせたくないということですね?

でしたら、セッションにフラグを持たせておくとかかな?
もちろんセッションのタイムアウトが来たら終わりですけど。

#編集
かぶってしまった…。


[ メッセージ編集済み 編集者: 囚人 編集日時 2005-09-30 20:48 ]
daikoku
常連さん
会議室デビュー日: 2005/09/22
投稿数: 21
投稿日時: 2005-09-30 20:58
>囚人さん
>burton999さん
ご返答ありがとうございます。

実はイニシャル処理の際に行いたいことは
そのSessionに初期値を保存することなのです。

結局なにをしたいかといいますと
ただ画面の状態(何を表示しているかのフラグ等)を
保持したいということだけですので
特にPage_Loadメソッドでなにかを行いたいという
こだわりはありません。

現状の方法では難しいのでしょうか・・・。





Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-09-30 21:05
Session_Start
_________________
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-10-01 17:45
引用:

実はイニシャル処理の際に行いたいことは
そのSessionに初期値を保存することなのです。



ん?
だから Session に初期値を保存したということを、Session に持たせればよいのでは?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-10-01 19:12
引用:

囚人さんの書き込み (2005-10-01 17:45) より:
引用:

実はイニシャル処理の際に行いたいことは
そのSessionに初期値を保存することなのです。



ん?
だから Session に初期値を保存したということを、Session に持たせればよいのでは?



ってか、入れたら初期化済み、ですよ。Session[識別子] が null だったら「初期化されていない」ですから。
_________________
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-10-01 19:20
引用:

ってか、入れたら初期化済み、ですよ。Session[識別子] が null だったら「初期化されていない」ですから。



あれ?私大きな勘違いしてるかな。

引用:

結局なにをしたいかといいますと
ただ画面の状態(何を表示しているかのフラグ等)を
保持したいということだけですので


から、

イニシャル処理 →
例えば'A'を初期値と設定し、A を表示する。Session["表示すべきもの"] = 'A'
Session["初期化済み"] = true;

処理が続く →
Session["表示すべきもの"] = 'B'

リロード →
Session["初期化済み"] が true なら、Session["表示すべきもの"]はそのまま。

でよいと思ったのですが。

スキルアップ/キャリアアップ(JOB@IT)