- PR -

ポップアップカレンダーから日付を入力するには

1
投稿者投稿内容
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2002-04-24 23:36
ポップアップカレンダーから日付を入力するには

PopupCalendarMain.aspxをクリックすると日付を入力する Web Form が表示されますので Calendar のボタンをクリックします。

ポップアップカレンダーが表示されたら日付を選択してから OK ボタンをクリックします。選択した日付は、自動的にメインフォームに転送されます。

ポップアップウィンドウを表示させるには

新規ウィンドウを表示する JavaScript を生成して Response.Write でブラウザに送信します。

コード:
Sub WriteScript

Dim strScript As String = ""
strScript &= "<script language=javascript>"
strScript &= "var features = 'Height=250,Width=165,Top=50,Left=50,・・・';"
strScript &= "window.open('PopCalendar.aspx','',features);"
strScript &= "</script>"
Response.Write(strScript)
End Sub


Happy Programming!
Akio Kasai


[ メッセージ編集済み 編集者: Dr ADO.NET 編集日時 2002-09-05 12:32 ]
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2002-05-20 08:39
ポップアップカレンダーから選択した日付を親ウィンドウに返すには

PopupCalendar.aspxからOKボタンをクリックしたときは、次のような
JavaScript(JScript)を実行させて選択した日付を親ウィンドウに返します。

QueryStringのSourceには、親ウィンドウの日付のTextBoxのID(txtOrderDate)が格納されています。

コード:
  Sub btnOk_Click(s As Object, e As EventArgs)
    Dim strSource As String = Request.Params("source")    
    Dim dtmDate As DateTime = calPopup.SelectedDate  
    Dim strScript As String = ""
  
    strScript &= "<script language=javascript>"
    strScript &= "window.opener.form1." & _
      strSource & ".value = '" & dtmDate.ToString("d") & "';"
    strScript &= "window.close();"
    strScript &= "</script>"
    Response.Write(strScript)
  End Sub 



Note:
ASP.NETでユーザーフレンドリーなWeb フォームを作成しようとすると、
結局DHTML(HTML+CSS+DOM+JavaScript)の知識が必要となります。
tabou
常連さん
会議室デビュー日: 2002/07/15
投稿数: 39
投稿日時: 2002-09-05 08:20
こんにちは

参考にさせていただきトライしてみましたが、うまく出来ません
下記の2点教えてください。

1.
>QueryStringのSourceには、親ウィンドウの日付のTextBoxのID(txtOrderDate)が格納されています。

formタグ等で設定してみたのですが Request.Paramsorm()で取り出すことが出来ません。
親ウインドウ側の設定の方法を教えてください。

2.
>strScript &= "window.opener.form1." & _

親ウインドウの情報が取れないようです。
親または子側で設定しなければならないことがあるのでしょうか。

申し訳ありませんがよろしくお願いいたします。




Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2002-09-05 12:28
引用:

formタグ等で設定してみたのですが Request.Paramsorm()で取り出すことが出来ません。
親ウインドウ側の設定の方法を教えてください。



window.open('PopCalendar.aspx?source=txtOrderDate','',features);
のようにQueryStringを指定します。

コード:
Sub WriteScript
  Dim strScript As String = ""
  strScript &= "<script language=javascript>"
  strScript &= "var features = 'Height=250,Width=165,Top=50,Left=50,・・・';"
  strScript &= _
    "window.open('PopCalendar.aspx?source=txtOrderDate','',features);"
  strScript &= "</script>"
  Response.Write(strScript)
End Sub



引用:

親ウインドウの情報が取れないようです。
親または子側で設定しなければならないことがあるのでしょうか。



window.opener.form1.txtOrderDate.value = '2002/09/05';
のようなJavaScriptを生成しています。

window.opener.form1は、親ウィンドウのform1を参照しています。

親ウィンドウのformタグが以下のようになっているか確認してください。

<form id="form1" runat="server">

コード:
Sub btnOk_Click(s As Object, e As EventArgs)
    Dim strSource As String = Request.Params("source")    
    Dim dtmDate As DateTime = calPopup.SelectedDate  
    Dim strScript As String = ""
  
    strScript &= "<script language=javascript>"
    strScript &= "window.opener.form1." & _
      strSource & ".value = '" & dtmDate.ToString("d") & "';"
    strScript &= "window.close();"
    strScript &= "</script>"
    Response.Write(strScript)
End Sub



このサンプルを理解するには
IE(Internet Explorer)のDOM(Document Object Model)とJavaScriptの知識が必要になります。

DOMとJavaScriptを勉強されてはどうでしょうか。
tabou
常連さん
会議室デビュー日: 2002/07/15
投稿数: 39
投稿日時: 2002-09-05 14:13
Dr ADO.NET さん有難うございます。

おかげさまで動かすことが出来ました。

>このサンプルを理解するには
>IE(Internet Explorer)のDOM(Document Object Model)とJavaScriptの知識が必要になり
>ます。

>DOMとJavaScriptを勉強されてはどうでしょうか。

Webを作るのは勉強する範囲が広がって、結構大変なようですが
頑張って勉強していきます、又質問させていただくと思います
その時はよろしくお願いします。


ポッキー
常連さん
会議室デビュー日: 2004/01/29
投稿数: 43
投稿日時: 2004-02-13 09:08
ポップアップカレンダーから選択した日付を親ウィンドウに月と日を分けて
表示させたいのですが、【window.open】と【window.opener】にsource部分を2つ
書くのは違反なのでしょうか?
親と子の各ウィンドウには以下のように表記しています。

親側
window.open('PopCalendar.aspx?source1=txtMonth&source2=txtDate','',features);

子側
Dim strSource1 As String = Request.Params("source1")
Dim strSource2 As String = Request.Params("source2")
"window.opener.form1." & _
strSource1 & ".value = '" & 月の値 & "'&" & _
strSource2 & ".value = '" & 日の値 & "';"


あと、JavaScriptのおすすめの本があったら教えていただけないでしょうか。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-13 10:33
引用:

ポッキーさんの書き込み (2004-02-13 09:08) より:

親側
window.open('PopCalendar.aspx?source1=txtMonth&source2=txtDate','',features);

子側
Dim strSource1 As String = Request.Params("source1")
Dim strSource2 As String = Request.Params("source2")
"window.opener.form1." & _
strSource1 & ".value = '" & 月の値 & "'&" & _
strSource2 & ".value = '" & 日の値 & "';"


 なるほど・・・確かに、気持ちはわかる・・・


 スクリプトが吐き出された後を、想像してください。親側はOkです。子側ですが、

window.opener.Form1.strSource1.value = '1'&strSource2.value = '12';

となりますよね。これって、文法的におかしいと思いませんか?JavaScriptの命令/文の区切りは‘;’(セミコロン)です。‘&’(アンパサンド)ではありません。面倒でも、

window.opener.Form1.strSource1.value = '1';
window.opener.Form1.strSource2.value = '12';

とする必要があります。
#JavaScriptは大文字小文字を区別するので注意


 とりあえず「とほほ」を一通り眺めてみられては?
http://tohoho.wakusei.ne.jp/
「とほほのwww入門」→「JavaScriptリファレンス」
ポッキー
常連さん
会議室デビュー日: 2004/01/29
投稿数: 43
投稿日時: 2004-02-13 10:57
ありがとうございます。
できました。
教えていただいがHPを読んでみます。
1

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