- PR -

子画面、session変数

投稿者投稿内容
3m
常連さん
会議室デビュー日: 2004/11/05
投稿数: 34
投稿日時: 2004-11-12 11:14
こんにちは。
WebMatrixにてASP.NETの開発をしております。
親画面から子画面を開いた時にSession変数にて親画面の値を取得し
子画面のテキストボックスに表示させているのですが
最初の一回目(子画面を開いた時)のみSessionの情報が子画面に表示されません。
子画面にて更新をしてやると表示され、また二回目以降からは更新をしなくても表示されます。
このような状況になっているのは何が問題なのでしょうか?
書き方の問題なのでしょうか?

親画面のボタンクリックイベントにてSession変数に値を格納→window.open()で子画面を表示→子画面のページロードイベントにてSessionの内容をテキストボックスへ表示。

上記のやり方でやっています。

よろしくお願いします。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2004-11-12 11:22

>親画面のボタンクリックイベントにてSession変数に値を格納
> →window.open()で子画面を表示
> →子画面のページロードイベントにてSessionの内容をテキストボックスへ表示

Window.Open()ってクライアント側のスクリプトですね。
どのタイミングで呼ばれてるんでしょう。
Sessionオブジェクトに値を入れる前だったりしませんか?

実際のコードはどうなってますか?

_________________
たつごろー
codeseek
こみゅぷらす
3m
常連さん
会議室デビュー日: 2004/11/05
投稿数: 34
投稿日時: 2004-11-12 11:35
お返事ありがとうございます。
実際のコードをのせます。

親画面-----
Sub gSet_Click(sender As Object, e As EventArgs)
Dim str01 As String
  Session("strTenpu01") = txtTenpu01.Text
gSet.Attributes.Add("onClick", "window.open('set.aspx');")
End Sub

子画面-----
Sub Page_Load(sender As Object, e As EventArgs)
If Not Page.IsPostBack then
txtFile01.text = session("str01")
End If
End Sub

このような感じになっています。
よろしくお願いします。
3m
常連さん
会議室デビュー日: 2004/11/05
投稿数: 34
投稿日時: 2004-11-12 11:37
親画面のsessionの部分が間違っています。
--訂正--
Session("str01") = txtFile01.Text


たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2004-11-12 12:10
> gSet.Attributes.Add("onClick", "window.open('set.aspx');")

これが

> Sub gSet_Click(sender As Object, e As EventArgs)

以外の場所にあったりしませんか?
そうだとすると

> Session("str01") = txtFile01.Text

の前にサブ画面が出ちゃいます。

_________________
たつごろー
codeseek
こみゅぷらす
3m
常連さん
会議室デビュー日: 2004/11/05
投稿数: 34
投稿日時: 2004-11-12 13:06
Sub gSet_Click(sender As Object, e As EventArgs)
の中に
gSet.Attributes.Add("onClick", "window.open('set.aspx');")
を書いているんですけどね…^^;
なぜなんでしょう…。


たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2004-11-12 13:35
たぶん、かかれている機能を実現するにはJavaScriptより先にASP.NETが処理さ
れる必要がありますが、これはクリアしていますか。

ASP.NETが吐き出したhtmlのソースコードがヒントになりますよ。


_________________
たつごろー
MCSD.NET、MCDBA、MCSA、MCAD
Oracle Master Platinum 9i、Oracle Master Linux+

[ メッセージ編集済み 編集者: たつごろー 編集日時 2004-11-12 13:37 ]
3m
常連さん
会議室デビュー日: 2004/11/05
投稿数: 34
投稿日時: 2004-11-12 14:21
ASP.NETが吐き出したHTMLソースを見てみました。
一回目のボタンクリック時には親画面のテキストボックスのvalueがありませんでした。
二回目のボタンクリック時にはvalueがありました。
これは関係があるのでしょうか?

>たぶん、かかれている機能を実現するにはJavaScriptより先にASP.NETが処理さ
れる必要がありますが、これはクリアしていますか。

処理されるようにしていません。初心者なので…^^;
そんな設定があるのでしょうか?

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