Как использовать ASP.net asp: RangeValidator для правильной проверки даты?

Вот мой код:

<asp:TemplateField HeaderText="* License Setup Date">
    <EditItemTemplate>
        <asp:RequiredFieldValidator ID="LicenseSetupDateRequired" 
            ErrorMessage="License Setup Date can't be blank."
            ValidationGroup="EditClientDetails" 
            ControlToValidate="BeginDate"  
            Text="*!" 
            Display="Dynamic" 
            runat="server"></asp:RequiredFieldValidator>                    
        <asp:RangeValidator ID="LicenseSetupDateRange" 
            ErrorMessage="License Setup Date needs to be a date between 01/01/2000 and 12/31/2200"
            ValidationGroup="EditClientDetails" 
            ControlToValidate="BeginDate"
            MinimumValue="01/01/2000"
            MaximumValue="12/31/2002"
            Type="Date"
            Text="*!" Display="Dynamic" runat="server"></asp:RangeValidator>                        
        <asp:TextBox ID="BeginDate" MaxLength="10" 
            Text='<%# Bind("BeginDate", "{0:MM/dd/yyyy}") %>' 
            runat="server"></asp:TextBox>
        <span class="fieldNote">(mm/dd/yyyy format)</span>
    </EditItemTemplate>
</asp:TemplateField>

И результаты:

  • 01.01.2008 не проходит
  • 02.02.2008 не проходит
  • 11/11/2000 проходит
  • 08.08.2001 Проходит

Что мне здесь не хватает?

13.12.2008 02:31:46
2 ОТВЕТА
РЕШЕНИЕ

Вам необходимо увеличить MaximumValue до даты, превышающей дату ваших тестов. В частности, MaximumValue должно быть установлено 31.12.2200. Вы перебрали значение MaximumValue.

1
13.12.2008 02:34:52
Выбран для использования термина «жир с пальцами»
danieltalsky 13.12.2008 03:23:12

Пример, который вы привели, похоже, содержит опечатку. Вы указываете MaximumDate как « 31/12/2002 » вместо « 31/12/2200 ».

1
13.12.2008 02:40:50