13

ページにCalendarExtenderコントロールがあり、次の日曜日に日付を変更しなければならない場合があります。現在、コントロールのOnClientDateSelectionChangedプロパティを使用して、日曜日までの日付に数日を追加する関数を呼び出しています。

私が抱えている問題は、カレンダーで火曜日を選択すると、テキストボックスに次の日曜日が表示されますが、カレンダーで選択した日付はまだ火曜日であるということです。

CalendarExtenderを更新して、javascriptで選択した日付の新しい日付にする方法を教えてください。CalendarExtendarが接続されているテキストボックスに正しい日付が表示されます...

4

2 に答える 2

30

次の2つの条件が満たされた場合、 CalendarExtenderのTargetControlIdであるテキストボックスの値を変更すると、選択した日付に影響します。

  1. onchangeイベントは、テキストボックスで発生します(テキストを手動で変更するか、明示的なjavascript fireEvent()メソッドを呼び出すことによって)。
  2. テキストボックスに入力された日付の形式は、CalendarExtenderコントロールで使用されているのと同じ形式と一致します。

そうは言っても、これを処理する正しい方法set_selectedDate()は、CalendarExtenderコントロールの関数を呼び出すことです。この1回の呼び出しで、選択したものがカレンダーだけでなく、[ターゲット]テキストボックスにも同時に設定されます。

サンプルコードは次のとおりです。

<cc1:CalendarExtender ID="CalendarExtender1" runat="server" 
        OnClientDateSelectionChanged="dateSelectionChanged" 
        TargetControlID="txtDate" PopupButtonID="imgCalendar">
</cc1:CalendarExtender>

<script type="text/javascript">
  function dateSelectionChanged(sender, args){
    selectedDate = sender.get_selectedDate();
    /* replace this next line with your JS code to get the Sunday date */
    sundayDate = getSundayDateUsingYourAlgorithm(selectedDate); 
    /* this sets the date on both the calendar and textbox */
    sender.set_SelectedDate(sundayDate); 
 }
</script>
于 2009-05-13T21:28:15.753 に答える
0
<asp:TextBox ID="txtDate" Text='<%# Bind("Date", "{0:dd-MMM-yyyy}") %>'
                                                                                            runat="server" class="form-control input-sm m-bot15" BackColor="#ffccbb"></asp:TextBox>
                                                                                        <asp:CalendarExtender ID="CalExtender1" runat="server" Enabled="true" Format="dd-MMM-yyyy"
                                                                                            TargetControlID="txtDate">
                                                                                        </asp:CalendarExtender>
于 2019-07-29T12:39:28.043 に答える