我的页面上有一个CalendarExtender控件,有时需要将日期更改为下一个星期日。我目前正在使用控件的OnClientDateSelectionChanged属性来调用一个函数,该函数将在日期之前添加几天直到它的星期日。
我遇到的问题是,如果我在日历中选择星期二,则文本框将显示下一个星期日,但日历中的所选日期仍为星期二。
如何更新CalendarExtender以使新的日期具有我在javascript中选择的日期? CalendarExtendar连接的文本框显示正确的日期...
答案 0 :(得分:28)
如果满足以下2个条件,则更改 CalendarExtender 的 TargetControlId 文本框的值会影响所选日期:< / p>
话虽如此,处理此问题的正确方法是调用CalendarExtender控件的set_selectedDate()
函数。这一次调用不仅可以在日历上设置所选内容,还可以同时在“目标”文本框中设置。
以下是示例代码:
<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>
答案 1 :(得分: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>