- - PR -
ASP.NET 親画面と子画面のデータの受渡しについて
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-02-15 10:58
いつもお世話になっております。ASP.NET初心者でございます。
ASP.NETにて親画面が子画面をjavascript(window.showModalDialog)にて開いています。 親画面にはグリッドがあり各行にリンクボタンのテンプレートがあります。そのリンクボタン押下イベントにて子画面が開くようになっています。 子画面にてテキストボックスに入力をし、コマンドボタン押下イベントにて親画面のグリッドのリンクボタンをクリックした行に子画面で入力した値をセットしたいと思っています。 なにかよい方法がありますでしょうか? ご教授のほどお願い致します。 | ||||
|
投稿日時: 2005-02-15 11:31
試してませんが
リンクボタンで子画面をOpenするときに クエリ文字列で、値をセットしたいオブジェクト名を渡して 子画面で受け取ったクエリ文字列から動的にスクリプトを生成するとか。。。 | ||||
|
投稿日時: 2005-02-15 13:43
確かwindow.showModalDialogで開いた画面はPostBackさせられなかったはず。window.openで開いた子画面とは全然扱いが違って、submitすると新しいウィンドウが開いちゃいます。
だから私の認識が間違ってなければ、showModalDialogで開く画面をサーバ側でいじれるのは初期表示時だけで、値渡しの処理一連は全部javascriptだけで実装しないといけません。子画面から親画面に値を渡すときはwindow.returnValueを使います。 参考:http://www.tohoho-web.com/js/window.htm#showModalDialog | ||||
|
投稿日時: 2005-02-15 13:49
フレームを使用すれば、新規ウィンドウを開かないようにできますが、 Sessionで受け渡す場合には、子画面を閉じた時に親画面をPostしないといけないので面倒です。 よって、ぼのぼの様の言うとおりクライアントスクリプトで処理するのがイイと思います。 | ||||
|
投稿日時: 2005-02-15 14:17
お世話になっております。ASP.NET初心者でございます。
burton999様、ぼのぼの様 貴重なご意見ありがとうございます。 「window.returnValue」について調べてみました。 参考にしたサンプルは親画面のテキストボックスにかえすものでしたが、それがグリッドの指定する行になっても問題なく動作するのでしょうか? これから挑戦してみます。 | ||||
|
投稿日時: 2005-02-15 14:28
グリッドの行とは、ただの文字列ですか?それともTextBoxなどですか? ただの文字列なら、親画面をPostBackさせないと変更できないと思います。 | ||||
|
投稿日時: 2005-02-15 14:53
idさえふってあれば、tdタグやdivタグもinnerTextやinnerHTMLでいけませんでしたっけ? | ||||
|
投稿日時: 2005-02-15 15:16
たしかに可能ですね。 DataGridで出力されるTDタグにはデフォルトではIDはふってないので 自分でIDを発行して、そのIDのオブジェクトに対してinnerTextを設定すれば可能です。 しかし、その子画面で入力されたデータは親画面に表示させるだけでよいのでしょうか? その後、親画面からサーバーにPostしてなにか処理を行うのでしょうか? だとしたら、DHTMLでグリッドに表示させても、サーバーでひろえなかった気がします。。。 |