- - PR -
window.open時の親画面から子画面へのデータ移行に関して
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-27 14:28
いつも参考にさせていただいております。
開発環境は ASP.NET 2.0 /VisualStudio2005(VB) /Oracle.DataAccess となります。 JavaScriptのwindow.open()を使用して、メインのフォームから子画面を呼び出しているのですが、子画面で入力したデータを親画面にセットするというのはできたのですが、親画面で入力したデータを子画面にセットするというのがうまくいきません。ボタンをクリックすると子画面をOPENするようにしているのですが、1回目にクリックしたときはデータがセットされず、2回目にクリックするとデータがセットされています。データセットの方法としましては、クリック時にSession関数にデータを入れてそれをセットするというふうにしているのですが、どうも、JavaScriptのwindow.open()のほうが先に動いていて、Session関数にデータがセットできていないみたいなのですが、クリック時にうまくデータを取得して子画面に渡す方法はないでしょうか。また、子画面の方からデータを取得しようと以下のようにしてみましたが、 function Busyo_Get() { document.form1.txtBsCd.value = window.opener.document.form1.txtBusyoCd.value ; document.form1.txtBsNm.value = window.opener.document.form1.txtBusyoNm.value ; return ; } 子画面が起動された、ときにBusyo_Get() を呼び出すというのができなくて悩んでおります。長々とすみませんが、ご教授宜しくお願い致します。 | ||||
|
投稿日時: 2006-11-27 14:49
JavaScriptのwindow.open()はクライアントサイドのonClick時にJavaScriptで呼出し、 SessionにデータをセットするのはサーバサイドでのClickイベントで処理しているの ではないでしょうか? それだとSessionにデータをセットする前に子画面が開くので期待した動きにはならな いと思うので、サーバサイドでSessionに設定後、RegisterStartupScriptでJavaScript を吐き出せば期待したような動きができるのではないでしょうか。 | ||||
|
投稿日時: 2006-11-27 15:58
サーバサイドでSessionに設定後、RegisterStartupScriptでJavaScriptを呼び出せば
思ったようにデータをセットすることができました!! Katzeさん、どうもありがとうございました。 |
1