Как использовать ASP.net asp: RangeValidator для правильной проверки даты? - PullRequest
1 голос
/ 13 декабря 2008

Вот мой код:

<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 Passes
  • 08/08/2001 Пропуска

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

Ответы [ 2 ]

1 голос
/ 13 декабря 2008

Пример, который вы привели, похоже, содержит опечатку. Максимальная дата указывается как ' 31/12/2002 ' вместо ' 31/12/2200 '.

1 голос
/ 13 декабря 2008

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

...