- - PR -
子画面から親画面のテキストボックスに値を入れたい
«前のページへ
1|2|3
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-06-17 16:00
そうですね。 親画面を起動した時に「ソースの表示」で生成された HTML を見てみることをお薦めします。 | ||||||||||||
|
投稿日時: 2008-06-17 16:37
ということは windows.opener が null なのでしょう。 冬寂さんご指摘の内容に心当たりがないのであれば、ちょっと原因はわかりません。 問題の切り分けのために、HTMLを書いてみました。 これを現象が発生しているWebサーバ(ASP.NET開発サーバか、IIS)と同じところで動かしても問題が出るのであれば、環境の問題と言うことができると思います。 parent.html
child.html
| ||||||||||||
|
投稿日時: 2008-06-17 20:58
子画面のHTML見ました?
>Protected Sub but_click(ByVal sender As Object, ByVal e As System.EventArgs) > >Dim txt As Button = 表示form.Row.FindControl(CType(sender, Button).Text) > >'スクリプトの実行 >ClientScript.RegisterStartupScript(Me.GetType(), _ >"hyouji", _ >"<script type='text/javascript'>" & _ >"window.opener.document.forms[FormView1].表示TextBox.value=txt</script>") > >End Sub このコード実行すると、スクリプトがどこに挿入されたか理解してますか? 子画面のHTML上部に挿入され、‘表示TextBox’が生成される前に実行されますよ。 Dim btn As Button = FormView1.Row.FindControl("Button1") Dim sbScript As New System.Text.StringBuilder() sbScript.Append("var a = window.opener;") sbScript.Append("if(a != null && a.closed == false){") sbScript.Append(" var b = a.document.getElementById('textbox1');") sbScript.Append(" if(b != null)") sbScript.Append(" b.value = this.value;") sbScript.Append(" }") btn.Attributes("onclick") = String.Format(sbScript.ToString(), Page.Form.ClientID, txt.ClientID) こんな感じでどうでしょう。VB知らないし動かしてないけど 重要なことは、 ちゃんとボタンにスクリプトが割り当てられていることを確認すること! 各ステップの意味を理解すること!そして、無駄を省くこと! 絶対にHTMLを確認してね〜。 >rainさん .htmlで問題切り分けって、この質問を迷宮入りにしようと画策してます? [ メッセージ編集済み 編集者: 未記入 編集日時 2008-06-17 21:00 ] [ メッセージ編集済み 編集者: 未記入 編集日時 2008-06-17 21:02 ] | ||||||||||||
|
投稿日時: 2008-06-17 23:56
RegisterStartupScriptは、</form> の直前に挿入されます。
ですので、スレ主の用法自体は間違っていません。 http://msdn.microsoft.com/ja-jp/library/system.web.ui.page.registerstartupscript.aspx ただ、どこで躓いているのか理解出来ていませんが・・・ FormViewはボリュームありますね〜。 ポストバックする必要あるのですか? | ||||||||||||
|
投稿日時: 2008-06-17 23:56
window.opener.document.forms[FormView1].表示TextBox とは、親画面のオブジェクトと思うのですが、親画面が表示される前に子画面のスクリプトが実行される、という事でしょうか? ンー。プログラムの作り方とネットワークの状況によってはそういう事が起こる可能性もないでもなさそうだけど・・・普通、無いんじゃない? | ||||||||||||
|
投稿日時: 2008-06-18 08:05
ひろれい様、rain様、未記入様、ぴあちゃん様、冬寂様 ありがとうございます。
今回、皆様のおかげで希望する動作に辿り着く事ができました。 皆様から頂いたご助言通り、理解度を深たいと思います。 また質問する事があると思いますが宜しくお願いします。 本当にありがとうございました。 | ||||||||||||
«前のページへ
1|2|3
