Ответ 1
Изменение значения текстового поля TargetControlId для CalendarExtender влияет на выбранную дату, если выполнены следующие 2 условия:
- Событие onchange запускается в текстовом поле (либо путем изменения текста вручную, либо путем вызова явного метода javascript fireEvent().
- Формат даты, введенной в текстовое поле, совпадает с тем же форматом, который используется элементом управления CalendarExtender.
Как говорится, правильным способом справиться с этим является вызов функции set_selectedDate()
элемента управления CalendarExtender. Этот один вызов не только устанавливает выбранные в календаре, но также и в текстовое поле Targeted в то же время.
Вот пример кода:
<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>