只显示两周的Ajax日历

时间:2011-01-12 18:52:21

标签: ajax asp.net-ajax

我正在使用.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>

2 个答案:

答案 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()