- - PR -
Page.ClientScript.RegisterStartupScript で親画面の ラベルに 値を渡したいのでしが。。。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-10-05 10:26
いつもお世話になっております。
ASP.NET(VB)で開発しております。 showModalDialogで親画面から子画面を開いて、子画面のVB側でPage.ClientScript.RegisterStartupScriptを利用してある値を親画面のラベルに渡した後、自分が閉じる ことを実現したいのですが、うまく行きません。誰かが助けてください。 |
|
投稿日時: 2007-10-05 11:24
試したコードは?それで、どんな現象がおきましたか?
何もおきないとか、ラベルに渡すのだけはうまくいったとか、javascriptエラーになるとか。 |
|
投稿日時: 2007-10-05 11:48
Dim sb As New System.Text.StringBuilder
sb.Append("window.opener.document.getElementById('lavel1').value = '" & sss & "'; ") Page.ClientScript.RegisterStartupScript(Me.GetType(), "gggg", sb.ToString, True) これて実行したところ、window.opner.documentはNullまたはオブジェクトではありません というエラーが出ました。 [ メッセージ編集済み 編集者: vion 編集日時 2007-10-05 11:54 ] |
|
投稿日時: 2007-10-05 12:01
showModalDialogは、window.openで開いた場合と違い、親画面にopnerでアクセスできません。
解決方法ですが、showModalDialogは任意の値をshowModalDialogメソッドの戻値として返せますので、 ・showModalDialog上の処理 : 戻り値に必要な値を設定し、closeする ・親画面の処理:受け取った値をラベルに設定する という流れはどうでしょうか。 |
|
投稿日時: 2007-10-05 12:11
kiyokuraさん:
ご指摘ありがとうございます。showModalDialogは親画面にopnerでアクセスできないですね。 それでは、Page.ClientScript.RegisterStartupScript(Me.GetType(), "ggg", "returnValue=" + aaa + "; window.close();", True) で戻り値に必要な値を設定し、closeしたほうがいいですよね。 受け取った値をラベルに設定するのはどうすればいいですか。経験すくないですので、よろしくお願いします。 |
|
投稿日時: 2007-10-05 13:15
先ほども申しましたとおり、showModalDialogでreturnValueにセットされた値は、showModalDialogの戻値になります。
ですので、呼び出し側(親画面)でshowModalDialogをコールする際に、たとえば以下のようにすれば、 とりあえずの目的は達せられると思います。 #何もされずに×ボタン等でダイアログが閉じられた際にはnullが返るはずですから、 #実際には最低限、それらを考慮した処理を行う必要があると思います。 document.getElementById('lavel1').value = showModalDialog(xxxxxx); |
|
投稿日時: 2007-10-05 15:05
あと、lavel1っていわゆるASP.NETのLabelですよね?( <asp:Label ってやつ)
それだとvalueプロパティで中身の文字列は替えられないと思います。 innerTextとか使わないと。 |
|
投稿日時: 2007-10-05 15:17
returnValue=showModalDialog("./aaa.aspx",dialogWidth=780px;dialogHeight=720px;resizable=1");
親画面のfunctionで上記のように書いてPage.ClientScript.RegisterStartupScript(Me.GetType(), "ggg", "returnValue=" + aaa + "; window.close();", True) から返されたreturnValueを取得してラベルに配置しました。 皆さん、ありがとうございます。 [ メッセージ編集済み 編集者: vion 編集日時 2007-10-05 15:18 ] [ メッセージ編集済み 編集者: vion 編集日時 2007-10-05 15:20 ] |
1