【问题标题】:How do I use an ASP.net asp:RangeValidator to validate a date properly?如何使用 ASP.net asp:RangeValidator 正确验证日期?
【发布时间】:2008-12-13 02:31:46
【问题描述】:

这是我的代码:

<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 未通过
  • 2000 年 11 月 11 日通过
  • 2001 年 8 月 8 日通过

我在这里错过了什么?

【问题讨论】:

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


    【解决方案1】:

    您需要将 MaximumValue 增加到一个大于您的测试日期的日期。具体来说,MaximumValue 应设置为 12/31/2200。你已经粗略地计算了最大值。

    【讨论】:

    • 选择使用“胖手指”一词
    【解决方案2】:

    您提供的示例似乎有错字。您将 MaximumDate 指定为 '31/12/2002' 而不是 '31/12/2200'。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-24
      • 1970-01-01
      相关资源
      最近更新 更多