- - PR -
親フォームのリロードをさせたくない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-08-23 18:33
いつもお世話になります。
現在VB.NET2003にて、Webアプリを開発してます。 現在、行き詰ってる問題があります。 親画面と子検索画面があって、Javascriptで ポップアップ制御をかけています。 1. 親画面にDropDownListのA.B、Cの三つがあります。 Aを選択すれば、DBを検索して結びつくデータをBに セット、Bを選択すれば、Cにセットする。 Cの横に検索ボタンを用意して、ボタンを押下げると子画面を開く。 2.子画面で名前を検索したら、データを親画面の CのDropDownListにセットする。 1の処理はwindow.openで開きます。 2の処理は window.opener.location.href = 'page1.aspx?value=aaa'; で子画面が閉じられ、データもセットできた。 問題は親画面のAとBの値をPage_Loadのリロードによりクリアされてしまいます。 ****ソース**** 親画面 Page_Load(){ If Request.QueryString("Value") <> "" Then dlpC.Items.Clear() dlpC.Items.Add(New ListItem(CStr(Request.QueryString("Value")),CStr(Request.QueryString("Code")))) dlpc.SelectedIndex = 0 End If } **子画面**** ボタンを押すイベント Dim strScript As New System.Text.StringBuilder With strScript .Append("<script language='javascript'>" & vbCrLf) .Append(vbTab & "window.opener.location.href = 'subpage.aspx?Code=XXX&Value=YYY';") .Append(vbTab & "window.close();" & vbCrLf) .Append("</script>") End With If (Not IsClientScriptBlockRegistered("clientScript")) Then Me.Page.RegisterClientScriptBlock("clientScript", strScript.ToString) End If どうにか、親画面をリロードさせない方法がないでしょうか? |
|
投稿日時: 2006-08-23 20:42
こんばんは
window.opener.location.href = 'page1.aspx?value=aaa'; で、ページ遷移を行っているのでPage_Loadはどうしても走ります。 リクエストからAとBのDropDownListの値を取得して、再設定すればできないこともないですが、他のページからの遷移を考えるとオススメできません。 子供の検索画面でJavaScriptを使用して window.opener.getElementById("CのDropDownListのID") で親のDropDownListを取得できませんか? あとは、値を設定してやって自分を閉じてやればいいと思います。 これなら通信は発生しません。 |
|
投稿日時: 2006-08-24 18:05
THREE-ONE さんへ
ご回答がありがとうございました。 以下のサイトを参照してなんとか解決案が見つかりました。 また今後、宜しくお願いします。 |
|
投稿日時: 2006-08-24 18:52
自己レスです
失礼しました、URLの貼り付けを忘れました。 URLはこっちらです。 http://www.aa.alpha-net.ne.jp/kataho/asp_net/valuestorer.html |
1