- - PR -
子画面、session変数
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-11-12 14:25
たつごろーさんも仰っているのですが、
gSetボタンのonClickを他の個所で記述していませんか? gSet_Clickメソッドの中で自身のonClickを追加しているようですが、 これでは、一度目のgSetボタンクリック時にはset.aspxは表示されず、 二度目のgSetボタンクリック時にset.aspxは表示されます。 一度目のgSetボタンクリック時にset.aspxが表示される場合、 gSet_Clickメソッド以外で 「gSet.Attributes.Add("onClick", "window.open('set.aspx');") 」 と同様のことを行っていることが考えられます。 | ||||||||
|
投稿日時: 2004-11-12 14:52
こんな動きではありませんか?
(1)テキストボックスに"1"を入力してボタンクリックしても何もおきない。 (2)テキストボックスに"2"を入力してボタンクリックすると子画面が開き、値が表示されない。 (3)テキストボックスに"3"を入力してボタンクリックすると子画面が開き、"2"が表示される。 | ||||||||
|
投稿日時: 2004-11-12 15:16
gSet_Clickイベントにて
--- Me.RegisterStartupScript("Startup", "<script language=JavaScript>window.open('set.aspx');</script>") --- とすれば、1回のボタン押下のみで呼び出されるようになるでしょう。 ※但しボタン押下後、親画面にてブラウザのリロードを行うと更に新しい画面を開いてしまうので、開かぬように抑制する必要はありますが。 | ||||||||
|
投稿日時: 2004-11-12 17:59
聖人@SKBさん、todoさん、えんぞ@見習さん
お返事ありがとうございます。 聖人@SKBさん----- >たつごろーさんも仰っているのですが、 >gSetボタンのonClickを他の個所で記述していませんか? gSetボタンのonClickは他の個所で記述していません。 todoさん----- >(1)テキストボックスに"1"を入力してボタンクリックしても何もおきない。 >(2)テキストボックスに"2"を入力してボタンクリックすると子画面が開き、値が表示されない。 >(3)テキストボックスに"3"を入力してボタンクリックすると子画面が開き、"2"が表示される。 初めにこの点を書くことを忘れていたのですが @親画面のgSetボタンにて子画面(set.aspx)を開く A子画面のテキストボックスに値を入力 B子画面のOKボタンにてその値を親画面のテキストボックスへ反映 反映された値は親画面にて変更できない(readonly)ので子画面を開いて変更。 その際に今回の質問内容が起きています。 (C親画面に反映された値をgSetボタン押下時にsession変数に格納 D格納された値を子画面のテキストボックスへ表示。で、表示されない…。) todoさんのおっしゃっているように… @子画面のテキストボックスに"1"を入力し親画面のテキストボックスに"1"を反映。 そして、gSetボタンを押下すると「何も表示されない」 A次に子画面にて"2"を入力(以下省略) 「1が表示される」 B"3"を入力(以下省略) 「2が表示される」 という結果になりました。 session変数で値をとるタイミングがまずいのではないかと思います。 その点を確かめてみたいと思います。 えんぞ@見習さん----- >Me.RegisterStartupScript("Startup", "<script language=JavaScript>window.open('set.aspx');</script>") やってみましたが、うまくいきませんでした。 | ||||||||
|
投稿日時: 2004-11-12 18:10
> 初めにこの点を書くことを忘れていたのですが
もしも、つぎにご質問される機会がありましたら、ぜひ、これくらい詳しい説明 を早いうちにしていただければと思います。 問題点が絞り込めて、回答しやすいです。 丸数字は半角数字に変更しました。 > todoさんのおっしゃっているように… > 1子画面のテキストボックスに"1"を入力し親画面のテキストボックスに"1"を反映。 > そして、gSetボタンを押下すると「何も表示されない」 > 2次に子画面にて"2"を入力(以下省略) > 「1が表示される」 > 3"3"を入力(以下省略) > 「2が表示される」 > という結果になりました。 そうでしたか。 > session変数で値をとるタイミングがまずいのではないかと思います。 > その点を確かめてみたいと思います。 いいえ。違います。 タイミングの問題ではないので、この方法では正しい値と確信できる値を 取得することはできないと思います。 ASP.NETとJavaScriptの関係を理解しないと、この方法では厳しいです。 別の手法になりますが 「JavaScript parent」 を、有名どころの検索エンジンにかけてみてください。 _________________ たつごろー MCSD.NET、MCDBA、MCSA、MCAD Oracle Master Platinum 9i、Oracle Master Linux+ [ メッセージ編集済み 編集者: たつごろー 編集日時 2004-11-12 18:15 ] | ||||||||
|
投稿日時: 2004-11-12 19:25
では、ヒント
「JavaScript opener」ではなく? 私ならクエリー文字列でやります。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8013&forum=7 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8962&forum=7 | ||||||||
|
投稿日時: 2004-11-15 10:44
>>「JavaScript parent」
>「JavaScript opener」ではなく? 申し訳ない。 そのとおりです。 _________________ たつごろー codeseek こみゅぷらす | ||||||||
|
投稿日時: 2004-11-15 13:19
たつごろーさん、todoさん
ありがとうございます。 返事が遅れまして、すみません。 >もしも、つぎにご質問される機会がありましたら、ぜひ、これくらい詳しい説明 を早いうちにしていただければと思います。 はい…すみませんでした。 これからは詳しい説明をきちんとします。 todoさんの仰られていた「クエリー文字列」について調べてみました。 そんなやり方があるとは知りませんでした。勉強になりました。 var index1 = document.kotei.TextBox1.value; window.open('set.aspx?index1=' + index1 ,'','Width=600,Height=500,scrollbars=yes') 試用で作ってみたところうまくいきました。 上記のようなかたちで解決いたしました。 たつごろーさんの仰られていた「JavaScript opener」についても調べてみたいとおもいます。 このような機会があればまたよろしくお願いいたします。 ありがとうございました。 |