如何使用ASP.net asp:RangeValidator正确验证日期?

时间:2008-12-13 02:31:46

标签: asp.net asp.net-2.0 validation

这是我的代码:

<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通过

我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

您需要将MaximumValue增加到大于测试的日期。具体来说,MaximumValue应设置为12/31/2200。你已经发现了MaximumValue。

答案 1 :(得分:1)

你给出的例子似乎有一个错字。您将MaximumDate指定为“ 31/12/2002 ”而不是“ 31/12/2200 ”。