- - PR -
フレームを利用したshowmodaldialogの値引渡しについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-03-29 15:21
親画面(WebForm1)で入力した値を利用して子画面(WebForm3)にデータを表示し、
そのデータを加工してテーブルにセットする、という処理をしています。 (子画面から親画面に返る値はありません) @親画面(WebForm1)のTextbox1に値を入力して、Button1を押下 →クエリ文字列にTextbox1の値をセットして、フレーム(WebForm2)を開く Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim strProjectCode As String = Me.TextBox1.Text Dim strJScript As String strJScript = "<SCRIPT Language=""Javascript"">" & _ "var rtnVal=showModalDialog('WebForm2.aspx?PROJECT_CODE=" & strProjectCode & "','','dialogWidth:440px; dialogHeight:670px');" & _ "</SCRIPT>" Me.Controls.Add(New LiteralControl(strJScript)) End Sub Aフレーム(WebForm2)を利用して子画面(WebForm3)を開く <frameset> <frame name="contents" src="WebForm3.aspx"> </frameset> B子画面にて、親画面でセットした値を取得する Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' ページを初期化するユーザー コードをここに挿入します。 Dim str As String 'プロジェクトコード取得 str= Request.QueryString("PROJECT_CODE") End Sub showmodaldialogで子画面を表示していますが、Post_back時に複数のウィンドウが開いてしまったためフレームを使用する方法に変更しました。 ところが、クエリ文字列を利用した値の引渡しが無効になってしまいました。 (BのRequest.QueryString("PROJECT_CODE") = Nothing) これは何が原因なのでしょうか? 対応方法がありましたら、ぜひご教授ください。 よろしくお願いします。 | ||||
|
投稿日時: 2005-03-29 15:32
WebForm3にはクエリ文字列を渡してないからです。 WebForm2とWebForm3は全くの別ページです。 | ||||
|
投稿日時: 2005-03-29 15:49
burton999さん、ご返答ありがとうございました。
あまりの無知っぷりにお恥ずかしい限りです。 WebForm2にて一度値を退避させたあと、 改めてWebForm3に引渡したところうまくいきました。 かなり無理やりな気がするのですが、もっとスマートな方法はあるのでしょうか? |
1