- - PR -
フレーム分けした子画面にセッション変数を渡す方法
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-01 15:03
たつごろー様
お世話になります。 たつごろー様に提示して頂いた下記の手段で調査してみます。 また >2番目のPage_Load時というのはどういうときでしょうか。 かるあ様の図でいうと3.フレームの要素1のPage_loadです。 かるあ様 お世話になります。 現在の状況は、 >1のセッションは1のPostBackでは取得できるが、 >2,3では取得できない 取得できる時と出来ない時があります。 >2のセッションは2のPostBackでも取得できない >もちろん、3でも取得できない そのとおりです。 現在行った調査では、かるあ様の図で説明を致しますと 1.起動ページは、下記のような処理になっております。 □ボタン押下後 session("A") = 値(半角英数で100バイトくらいの文字です) alert(session.sessionID & ":" & session("A")) window.open('"webform1.aspx?Prm1=" & session("A") & "');" 2.フレームページ □page_load時 response.write(session("A")) ←表示出来てる時と出来ない時がある response.write(request.params("Prm1")) ←取得できている session("B") = request.params("Prm1") response.write(session("B")) ←取得できている 3フレームの要素1,2 □page_load時 if isnothing(session("A")) = false then 処理A elseif isnothing(session("B")) = false then 処理A else エラーメッセージ表示 ←ここが表示されます。 end if | ||||||||||||
|
投稿日時: 2006-02-01 15:23
VB.NETとJScriptが混在しているように見えるのですが、私の間違いでしょうか。 この辺のコードを、手打ちではなく、コピペではりつけていただいたほうがいいかもしれません。 _________________ たつごろー codeseek こみゅぷらす | ||||||||||||
|
投稿日時: 2006-02-01 16:17
たつごろー様
お世話になります。 javascriptのところは、DBに接続してファイル名を取得する方法を 取っていた為、コピペすると長くなるので省かせて頂きました。。。 □ボタン押下後 session("A") = 値(半角英数で100バイトくらいの文字です) str="<script language=""javascript"">" str&="<!--" str&="alert(session.sessionID & ":" & session("A"));" str&="window.open('"webform1.aspx?Prm1=" & session("A") & "');" str&="-->" str&="</script>" response.write(str) 2.フレームページ □page_load時 response.write(session("A")) ←表示出来てる時と出来ない時がある response.write(request.params("Prm1")) ←取得できている session("B") = request.params("Prm1") response.write(session("B")) ←取得できている 3フレームの要素1,2 □page_load時 if isnothing(session("A")) = false then 処理A elseif isnothing(session("B")) = false then 処理A else エラーメッセージ表示 ←ここが表示されます。 end if | ||||||||||||
|
投稿日時: 2006-02-01 17:09
間違いの元ですので、出来る限り元のコードを乗せて頂いたほうが良いと おもいます。もちろん、無用に長いとはっきり判るところは削除してもらって もかまいません。
JScriptでSessionを見てますか? 書き間違いですか?
提示していただいたコードを見る限り、その現象になりえると思います。 このページに来る前の時点で、session("A")を何がしかの文字列で埋めてみては いかがでしょうか。 どうしてもうまくいかなくて、どうにもならなくなったら、 いったん、そのプログラムのデバッグをやめて、 同じ挙動を起こす最小限のプログラムを作ってみてください。 問題が起こる部分を見つけやすくなります。 ステップ実行もためしてください。 _________________ たつごろー codeseek こみゅぷらす | ||||||||||||
|
投稿日時: 2006-02-01 20:43
たつごろー様
お世話になってます。 うまくセッション変数の値を取得する方法を見つけました(^0^)/ まず呼び出し元のpage_loadに下記の処理を追加します。 ※とりあえず、ボタンを押す前に下記の処理をボタンに組み込めばいいと思います。 ボタン押下時に新しいウィンドウを開いて、そのウィンドウをターゲットにします。 button.Attributes("onclick") = "window.open('','subWin','');document.Form1.target='subWin';" 次にボタンの処理に下記の処理を追加します。 ※ターゲット(新しいウィンドウにフレームページを表示する。) Server.Transfer(開くファイル名(フレームページ)) 上記のやり方でセッション変数の値が消えずに取得できるようになりました。 結構力技でしたが・・・ いろいろなご教授ありがとーございましたm(__)m | ||||||||||||
|
投稿日時: 2006-02-01 21:30
ボタンが押されたときに
セッション変数に値を格納して 別ページを呼び出したいならこんな感じじゃないかな
ただこれだと、ページが読み込まれるたびに サブウインドウを呼び出しちゃいますけど [ メッセージ編集済み 編集者: かるあ 編集日時 2006-02-01 21:34 ] [ メッセージ編集済み 編集者: かるあ 編集日時 2006-02-01 21:35 ] |
«前のページへ
1|2|3