我正在使用.Net3.5。我有一个场景,用户选择弹出Ajax日历的文本框。在该日历中,我只想在接下来的两周内展示。不是整个月或一年。怎么做?
<tr>
<td>
</td>
<td align="left">
Next Update Date
</td>
<td align="left">
<asp:TextBox ID="txtEditUpdateDt" runat="server"></asp:TextBox>
<cc2:CalendarExtender CssClass="AjaxCalendar" OnClientShowing="DisplayDateToday"
ID="CalendarExtender3" runat="server" PopupButtonID="txtEditUpdateDt" PopupPosition="BottomLeft"
TargetControlID="txtEditUpdateDt" Enabled="True" />
<asp:RegularExpressionValidator ID="valtxtEditUpdateDt" runat="server" Display="None"
ControlToValidate="txtEditUpdateDt" ErrorMessage="Please enter valid Date." ValidationExpression="((^(10|12|0?[13578])([/])(3[01]|[12][0-9]|0?[1-9])([/])((1[8-9]\d{2})|([2-9]\d{3}))$)|(^(11|0?[469])([/])(30|[12][0-9]|0?[1-9])([/])((1[8-9]\d{2})|([2-9]\d{3}))$)|(^(0?2)([/])(2[0-8]|1[0-9]|0?[1-9])([/])((1[8-9]\d{2})|([2-9]\d{3}))$)|(^(0?2)([/])(29)([/])([2468][048]00)$)|(^(0?2)([/])(29)([/])([3579][26]00)$)|(^(0?2)([/])(29)([/])([1][89][0][48])$)|(^(0?2)([/])(29)([/])([2-9][0-9][0][48])$)|(^(0?2)([/])(29)([/])([1][89][2468][048])$)|(^(0?2)([/])(29)([/])([2-9][0-9][2468][048])$)|(^(0?2)([/])(29)([/])([1][89][13579][26])$)|(^(0?2)([/])(29)([/])([2-9][0-9][13579][26])$))"></asp:RegularExpressionValidator>
<cc2:ValidatorCalloutExtender ID="ValidatorCalloutExtender3" runat="server" Enabled="True"
TargetControlID="valtxtEditUpdateDt">
</cc2:ValidatorCalloutExtender>
</td>
<td>
</td>
</tr>
答案 0 :(得分:0)
根据我所知道你不能这样做,这个日历扩展器非常容易使用,但非常有限,如果你使用Calendar控件,你只能启用你想要的日子。
答案 1 :(得分:0)
就像@Dario所说,我认为你不能在简单的ajax控件中限制它。另一种选择是添加范围验证器。
<asp:RangeValidator ID="RangeValidatorDT"
runat="server"
ControlToValidate="txtEditUpdateDt"
ErrorMessage="* Invalid date range"
Type="Date">
</asp:RangeValidator>
然后在页面加载
RangeValidatorDT.MinimumValue = System.DateTime.Now.ToShortDateString()
RangeValidatorDT.MaximumValue = System.DateTime.Now.AddDays(15).ToShortDateString()