2016-12-21 7 views
2

更新:まだこれを読んでいる人には、私はこれを行う方法が全く異なります。 AjaxToolkitのCalendar Extenderを使用すると、カレンダーを動的に簡単に追加でき、Javascriptを使用してさまざまな日付入力のフォーマットを変更して、カレンダーエクステンダーがそれを読むことができるようになりました。あなたが私に似たようなことをしようとしているなら、AjaxToolkitの道を行くことを強くお勧めします。動的に作成されたCalendarコントロールasp/javascript/VB.netから選択した日付にアクセスする

私は、カレンダーコントロール(asp:カレンダー)、ボタン、およびコメントクラスのドロップダウンリストを動的に作成しました。コメントクラスには常にテキストボックスがありますが、テキストボックスのID /属性ラベルがDOBまたは誕生日などの場合、これらの他のコントロールは動的に作成されます。

これまでのところ、カレンダー、ドロップダウンリスト、およびいずれかのボタンは機能しますが、最後のボタンに問題があります。現在、私は動的に、そのカレンダー、ドロップダウンリスト、および驚くほど効果的なボタンを含むdivを表示および非表示にするためにボタンの1つに使用されるスクリプトを追加します。私は、カレンダーから選択された日付を取ってテキストボックスに入れるために、ボタンを押したときに別のスクリプトトリガーを追加しようとしています。

今、私はカレンダーにアクセスしようとしています。私はこれに似た別の質問では、この機能を見つけ

function use_calendarDate(){ 
    var calendarDate = '<%=question128_Cal1.SelectedDate%>'; 
    alert(calendarDate); 
} 

、代わりに日付を取得する、それだけに文字列として<% = question128_Cal1.SelectedDate%>を置く:私はこのようなコードを使用しています警告ボックス。

このLINKは、私がやろうとしていることを正確に示していますが、私は別の結果を得ます。誰でも私がここで間違っていることを助けることができますか?興味深いことに

、私は

var calendarDate = question128_Cal1.SelectedDate; 

OR

var calendarDate = question128_Cal1.value; 

私の警告ボックスを使用して、私は未定義伝えます。

ありがとうございます。

それが必要とされる場合には、私のカレンダーコントロールは、次のように作成されます。Pag​​e_Init

Dim calendar1 As New Calendar 
Call BuildCalendar(calendar1) 
calendarDiv.Controls.Add(calendar1) 

ここで上記の参照関数です。

Private Sub BuildCalendar(ByRef calendar1 As Calendar) 

    calendar1.ID = "Cal1" 
    calendar1.SelectedDate = DateTime.Today 
    calendar1.Attributes.Add("runat", "server") 
    calendar1.Attributes.Add("OnClientDateChanged", "onDateChange") 
    calendar1.Attributes.Add("borderwidth", "2px") 
    calendar1.Attributes.Add("BackColor", "White") 
    calendar1.Attributes.Add("width", "200px") 
    calendar1.Attributes.Add("ForeColor", "Black") 
    calendar1.Attributes.Add("Height", "180px") 
    calendar1.Attributes.Add("Font-Size", "8pt") 
    calendar1.Attributes.Add("Font-Names", "Verdana") 
    calendar1.Attributes.Add("BorderColor", "#999999") 
    calendar1.Attributes.Add("BorderStyle", "Outset") 
    calendar1.Attributes.Add("DayNameFormat", "FirstLetter") 
    calendar1.Attributes.Add("CellPadding", "4") 
    calendar1.Attributes.Add("ShowNextPrevMonth", "True") 
    calendar1.Attributes.Add("SelectionMode", "Day") 
    calendar1.Attributes.Add("ShowTitle", "false") 
    calendar1.Attributes.Add("OnSelectionChanged", "Calendar_SelectionChanged") 
    calendar1.TodayDayStyle.ForeColor = Drawing.Color.Black 
    calendar1.Attributes.Add("todaydaystyle-backcolor", "#cccccc") 
    calendar1.Attributes.Add("selectorstyle-backcolor", "#cccccc") 
    calendar1.NextPrevStyle.VerticalAlign = VerticalAlign.Bottom 
    calendar1.Attributes.Add("dayheaderstyle-font-size", "7pt") 
    calendar1.Attributes.Add("dayheaderstyle-font-bold", "true") 
    calendar1.Attributes.Add("dayheaderstyle-backcolor", "#cccccc") 
    calendar1.Attributes.Add("selecteddaystyle-font-bold", "true") 
    calendar1.Attributes.Add("selecteddaystyle-forecolor", "White") 
    calendar1.Attributes.Add("selecteddaystyle-backcolor", "#666666") 
    calendar1.Attributes.Add("titlestyle-font-bold", "true") 
    calendar1.TitleStyle.BorderColor = Drawing.Color.Black 
    calendar1.Attributes.Add("titlestyle-backcolor", "#999999") 
    calendar1.Attributes.Add("weekenddaystyle-backcolor", "#ffffcc") 
    calendar1.OtherMonthDayStyle.BackColor = Drawing.Color.Gray 

End Sub 

答えて

0

質問128_Cal1または質問128_Calendar1ですか? function use_calendarDate()は、最初のものを指します。打ち間違え ?興味深いことに

、私は

var calendarDate = question128_Calendar1.SelectedDate;

OR

var calendarDate = question128_Calendar1.value;

私の警告ボックスを使用して、私は未定義伝えます。クライアントスクリプトは、「question128_Calendar1」は何であるかの知識を持たないためです

。それはサーバー側のIDです。

大きな「BuildCalendar」関数の代わりに、マークアップを使用してカレンダーを定義できない理由はありますか?あなたは、それを行うことで、メンテナンスの悪夢を少し作っている、IMO。

+0

コメントクラスは、プログラムの別の場所で使用されます。自分のページに追加されたすべてのコメントコントロールのマークアップにはカレンダーは必要ありません。このソフトウェアには、消費者向けのオンライン調査とテストの作成が含まれています。彼らがテストにコメントコントロールのトンを入れることに決めたら、必要がないたびにカレンダーを隠したり無効にしたりしたくない。 – SCSGuy

+0

以前私はquestion128_divCal1.style.displayを使用して、カレンダー、ドロップダウンリストなどを含むdivをボタンクリックで非表示または表示しました。だから私はそれがなぜquestion128_Cal1も認識しないのか分からない。 – SCSGuy

+0

まだこれを読んでいると思われる人には、これとはまったく異なる方法を使用しました。 AjaxToolkitのCalendar Extenderを使用すると、カレンダーを動的に簡単に追加でき、Javascriptを使用してさまざまな日付入力のフォーマットを変更して、カレンダーエクステンダーがそれを読むことができるようになりました。あなたが私に似たようなことをしようとしているなら、AjaxToolkitの道を行くことを強くお勧めします。 – SCSGuy

関連する問題