- PR -

別ブラウザからのデータの取得について教えてください。

投稿者投稿内容
ポッキー
常連さん
会議室デビュー日: 2004/01/29
投稿数: 43
投稿日時: 2004-02-03 16:19
メインの画面からカレンダーを別ブラウザで開いています。
そこで選択された日付をメインの画面に表示したいのですが
どうやるのか教えてください。
He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2004-02-03 17:04
(ASP.NETを使わないで)HTMLやJavaScriptを用いて、
子ウィンドウの値を親ウィンドウに反映させる方法はご存知でしょうか?

ご存知であれば、
 ・カレンダーで選択された日付の取得方法がわからない
 ・日付の取得方法はわかるが、その後どうすればよいのかがわからない
のどちらかだと思いますが、どちらでしょうか?
(または、ぜんぜん違うところでつまづいていますか?)

いづれにしても、
引用:

どうやるのか教えてください。


と、問題を丸投げにしてしまっては解決までの道のりが遠くなるだけです。
ポッキー
常連さん
会議室デビュー日: 2004/01/29
投稿数: 43
投稿日時: 2004-02-05 11:34
カレンダーは↓のように表示しています
string str = "<SCRIPT LANGUAGE='javascript'>" ;
str += "window.open('" + "calendar.aspx" + "','self','width=200,height=250,toolbar=no,resizable=yes,scrollbars=no');" ;
str+= "</SCRIPT>" ;
Response.Write(str_Script);

表示した後に、日付は取得できるのですが、その後にどうすればいいのかが
分かりません。

Session変数に入れて表示させようと思ったのですが、
カレンダーをウィンドウで開いてる間に、
メインでは次の処理に走ってしまい値が取得できませんでした。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-02-05 13:01
カレンダーのページを開く時に
日付の入力欄のIDをクエリー文字列で渡し。
string str = "<SCRIPT LANGUAGE='javascript'>" ;
str += "window.open('" + "calendar.aspx?id=" + controlID + + "','self','width=200,height=250,toolbar=no,resizable=yes,scrollbars=no');" ;


カレンダーページでは
string id = this.Request.QueryString["id"];
DateTime date = this.calendarControl.SelectedDate;
//
// JavaScriptを生成
//
System.Text.StringBuilder script = new System.Text.StringBuilder();
script.Append("<script language='javascript'>" + "\n");
script.Append("window.opener." + id + ".value=" + "'" + date.ToString("d") + "';" + "\n");
script.Append("window.close();" + "\n");
script.Append("</script>" + "\n");
//
// JavaScriptを登録する。
//
this.Page.RegisterClientScriptBlock("SetDate", script.ToString());
とする。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-02-05 13:04
ちなみにSessionで実現しようとすると。
日付が選択された時に、親のフォームをポストバックさせないといけないので
もっと面倒です。
He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2004-02-05 13:07
ご希望の動作をさせるには、HTML/JavaScriptの知識とASP.NETの知識とが必要です。
以下、切り分けて記述しますので、どちらの技術について説明してるのかをしっかり把握してください。

まず、以下のページをご覧ください。
・別ウィンドウの大きさを指定するには【HTML/JavaScript】
 (http://tohoho.wakusei.ne.jp/how2/window.htm#winOpen)
親ウィンドウから子ウィンドウを呼び出す際に、ポストバックの必要が無いことがお分かりいただけると思います。

ASP.NETで上記の動作をさせるには、以下のページが参考になります。
・ASP.NETでボタンのクリック時に確認メッセージを表示するには?【ASP.NET】
 (http://www.atmarkit.co.jp/fdotnet/dotnettips/015confirm/confirm.html)



つぎに、以下にて子ウィンドウの値を親ウィンドウに設定する方法が説明されています。
・子ウィンドウで入力した値を親ウィンドウに設定するには【HTML/JavaScript】
 (http://tohoho.wakusei.ne.jp/how2/window.htm#dialog)

ASP.NETで上記の動作をさせるための方法は、もう少しご自分で考えてみてください。
※ Pageクラスのメンバに「クライアント側のスクリプト」に関するものがいくつか用意されてます。

#と、のんびりかいてる間に答えが。。。せっかく書いたので投稿。
ポッキー
常連さん
会議室デビュー日: 2004/01/29
投稿数: 43
投稿日時: 2004-02-05 13:17
色々ありがとうございました。
もうひとつ質問させてください。
親フォームにデータを返す場所はテキストでないと駄目なのでしょうか?
Label部分に表示しようとした場合、ページエラーになってしまいます。
He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2004-02-05 21:29
引用:

親フォームにデータを返す場所はテキストでないと駄目なのでしょうか?
Label部分に表示しようとした場合、ページエラーになってしまいます。


ポッキーさんの仰る「Label部分」はHTMLとして出力されたときにどのように記述されていますか?
それを確認した上で、なぜエラーになったのかを考えてみてください。

上にも書きましたが、Webアプリの開発にはHTMLやJavaScriptの知識が必須です。

それと、
これも以前書きましたが、質問を丸投げにしないようにしましょう。
投稿日時だけをみると、ご自分で考える・調べるという作業をまったくしていないようですが。

スキルアップ/キャリアアップ(JOB@IT)