- - PR -
親と子の値渡し。
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-10-05 19:04
一日で二度の投稿ですが、どうぞ宜しくお願いします。
親画面(WebForm1.aspx)のボタンを押し、子画面(WebForm2.aspx)をひらいて、 ----------------------------- ※開く時は、Button1.Attributes["onclick"] = "window.open('WebForm2.aspx?id=name','', 'width=550,height=300');" をPage_Loadに記載しています。 ----------------------------- 初めは子画面に「検索状況」と表示します。 同時に親画面ではクリック時のイベント内に、処理@を記載し、 処理@が終わったら、子画面にデータを投げて、子画面はそのデータを受けて 処理@の内容を表示する。 且つ、初めは非表示にしていたボタン1(閉じるボタン)を表示するような ことを行いたいのです。 しかし、データの受け渡し方法が分からずとまどっています。 できれば、C#のソースでうまくできないかとも思っています。 ちなみに、Sessionを使用しようと思ったのですが、Session時は、Response.Redirect をしなければ、データが渡らないのでは?といろいろ調べて思い、 今はどうしたらよいのか全く分からない状況です。 お願いします。 | ||||
|
投稿日時: 2005-10-05 19:39
お世話になります。
親画面が処理@が終わった時点で Sessionに「子画面に対して投げたいデータ」を格納し、 その後、子画面のwindowオブジェクトをJavaScriptで取得し、reloadさせて、 子画面のPage_LoadイベントでSessionから取得した内容を表示する。 同時に子画面で閉じるボタン.visible = true。 ではないでしょうか…。 [ メッセージ編集済み 編集者: なおこ(・∀・) 編集日時 2005-10-05 19:42 ] | ||||
|
投稿日時: 2005-10-05 19:39
二重投稿により、削除[ メッセージ編集済み 編集者: なおこ(・∀・) 編集日時 2005-10-05 19:40 ] | ||||
|
投稿日時: 2005-10-05 19:44
こんにちは、でっちです。
ウィンドウ名称を固定にすれば、開いたウィンドウを指定して再表示ができるので、下記手順などいかがでしょうか? 1.「検索状況」画面を開く (基本は現状通り。window.openの第2引数に固定文字を指定し、表示制御用のQueryStringを追加する) 2.サーバサイドのボタンクリックイベントでSessionに表示情報をセット 3.RegisterStartupScriptを使用して、子画面を再表示するスクリプトを出力。 コードは大体こんな感じです
WebForm2.aspx側はQueryStringに追加した"status"で判定すれば、データの有無が分ります。 ※最初に開くものは別ファイル(静的HTML)にしても良いかもしれません。 | ||||
|
投稿日時: 2005-10-05 19:49
なおこ(・∀・)さん、またまたありがとうございます。
流れは理解しました。 引用----------------------- その後、子画面のwindowオブジェクトをJavaScriptで取得し、reloadさせて --------------------------- という部分がよく分かりませんでした。 1.Sessionにいれた値を、子画面のHTMLコード(クライアントコード) ⇒つまり、Javascriptで取得するように書くということですか? (この場合、window.opner?のようなものを使いますか?) 2.Sessionに値をいれた後に、子画面をjavaで呼ぶということですか? それは、RegisterClientScriptBlockのようなもので、Javascriptを追加? し、子画面を呼ぶ=reloadということでしょうか? 2つとも間違っているかもしれませんが、今の状態では、このくらいしか、 思いつきません。 間違いや、もしくは、近い考えがありましたら、再度教えて頂け ないでしょうか。 宜しくお願いします。 | ||||
|
投稿日時: 2005-10-05 19:57
でっち6号さんありがとうございます。
なおこさんに返信している間に、でっち6号さんの書き込みが あったようで、再度の質問とかぶってしまいました。 でっち6号さんの書き込みで、流れがよく分かりました! もう一度考えて、データを追いながら、チャレンジしてみます。 出来た/出来なかったについては、再度書き込みさせて頂きます。 | ||||
|
投稿日時: 2005-10-05 19:59
処理(1)を子画面(WebForm2.aspx)内で行った方が簡単でしょう。 | ||||
|
投稿日時: 2005-10-05 20:18
みなさん、ありがとうございます。
でっち6号さんの通り、やってみたのですが、 結果画面の方で、セッションをうまく取得できません。 初めは、Session["status"]を使うのかとも思ったのですが、調べて、 Request.QueryStringがあると分かりました。 しかし、QueryStringをビルドすると、 ------------------------------ 'System.Web.HttpRequest.QueryString' は 'プロパティ' を意味しますが、 'メソッド' でなければなりません。 ------------------------------ のようなエラーになってしまいました。 なにか違う方向で、考えてしまっているからでしょうか? |