- - PR -
showModelessDialogについて
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-30 18:23
初めて書き込みします。
現在、ASP.netを使用してWeb系のシステムを構築しているのですが、showModelessDialogの機能でよくわからないバグが発生しています。 親画面からボタンを押してサブ画面を起動しているのですが、サブ画面を開いたときに、Page_Loadのイベントが発生せず、初期画面に意図しないデータがDateBindされてしまいます。 何か対策等ご存知の方、ご教授お願いします。 ちなみに開発環境ですが・・・ VisualStudio.net2003 SQL Serber です。よろしくお願いします。 | ||||||||
|
投稿日時: 2006-05-30 18:40
Loadイベントが発生していないというのはどのようにして確認しましたか。 ブレークポイントで止まらないですか。それともPage_Load()に書いてある命令が実行されていないようにみえるからLoadイベントが起きていないのだろうという推測ですか? showModelessDialogではなくwindow.open()等で開くとLoadイベントが発生しますか?
意図しないデータというのは何のデータか分かりますかね。 例えば、前回表示していたデータとか。 別のユーザーが直前に表示したデータとか。 しかし、showModelessDialogなんてのがあるのを知らなかった。 [ メッセージ編集済み 編集者: 一郎 編集日時 2006-05-30 18:41 ] | ||||||||
|
投稿日時: 2006-05-30 19:00
返信ありがとうございます。
引用--------------------------------------------------------------------------- Loadイベントが発生していないというのはどのようにして確認しましたか。 ブレークポイントで止まらないですか。それともPage_Load()に書いてある命令が実行されていないようにみえるからLoadイベントが起きていないのだろうという推測ですか? ------------------------------------------------------------------------------- ↑Page_Load()に書いてある命令が実行されていないことから推測しました。 引用--------------------------------------------------------------------------- 意図しないデータというのは何のデータか分かりますかね。 ------------------------------------------------------------------------------- ↑ある項目のデータが開いたときに必ず表示されます。 登録ボタンや削除ボタンを押した時に初めてPage_Loadの処理が実行されます。 またwindow.open()ではサブ画面を開いたときに必ず親画面の前面に表示されないのでshowModelessDialogを使用しています。 どうすればいいでしょうか?? | ||||||||
|
投稿日時: 2006-05-30 19:28
先ず、これで確認して下さい。
話はそれからです。 | ||||||||
|
投稿日時: 2006-05-31 10:10
そうですね。 VisualStudioを使っているのですから、デバッガを使ってブレークポイントで止めることができますよね。試してみてください。
いや、実際納品するプログラムはどうであれ、原因の切り分けのために試してみてくださいということです。 もしwindow.open()だとPage_Loadが起きるのであれば、showModelessDialogを使っているのが原因と言うことですよね。 | ||||||||
|
投稿日時: 2006-05-31 14:15
[ メッセージ編集済み 編集者: 未記入 編集日時 2007-01-19 21:56 ] | ||||||||
|
投稿日時: 2006-05-31 15:20
スレ主からの応答がないので勝手に推測するとPage_Load内のIsPostBack辺りがぁゃιぃ(*゚ー゚) | ||||||||
|
投稿日時: 2006-05-31 15:34
返信が遅くなって申し訳ありません。
皆さん、アドバイスありがとうございます。 デバックを実行してみたところ、やはりサブ画面を起動した段階でPage_Loadの処理がはしっていませんでした。 ここからは私の推測なのですが、サブ画面を起動する直前に、セッションに必要な情報を登録しています。サブ画面を起動して、サーバからセッションの情報を取得しているのですが、親画面がセッションの情報を登録する前に、サブ画面が開いてしまい、セッションの情報が取得できないからPage_Loadの処理が実行されないのでしょうか? そういった現象は考えられますか? ちなみに実際のコードですが・・・ Private Sub ボタン_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ボタン.Click Session.Add("セッション情報1", "画面の情報1") Session.Add("セッション情報2", "") Dim St As String St = "<SCRIPT LANGUAGE='javascript'>" St &= "window.showModelessDialog('" & URL & "',window,'status:yes;dialogwidth:500px;dialogheight:428px;toolbar:yes;resizable:yes;scrollbars:no;help:no');" St &= "</SCRIPT>" Response.Write(St) End Sub こんな具合になってます。 |