CompareValidator验证两个日期

时间:2013-08-11 07:06:21

标签: c# asp.net devexpress comparevalidator

大家好我所有的日期格式都采用以下格式dd-MMM-yy我使用比较验证器验证日期如下

<asp:CompareValidator ID="cmpDates" runat="server" ControlToValidate="StartDate"
                      SetFocusOnError="true" ControlToCompare="EndDate"
                      ErrorMessage="EndDate must be greater than StartDate"
                      Display="None" Operator="DataTypeCheck"
                      ValidationGroup="vg" Type="Date"                           
                      CultureInvariantValues="true">
</asp:CompareValidator>

但这不符合要求,所以有人可以帮助我如何验证所需格式的日期

4 个答案:

答案 0 :(得分:2)

试试这个,这里我们使用Ajax日历控件来获取dd / mm / yyyy格式的输入,然后使用compare验证器

 <asp:TextBox ID="txtStart" runat="server"></asp:TextBox>
            <cc1:CalendarExtender ID="txtStart_CalendarExtender" runat="server" 
                Enabled="True" TargetControlID="txtStart">
            </cc1:CalendarExtender>
            <asp:CompareValidator ID="CompareValidator1" runat="server" 
                ControlToCompare="txtEnd" ControlToValidate="txtStart" 
                ErrorMessage="CompareValidator"></asp:CompareValidator>

        </div>
        <p>
            <asp:TextBox ID="txtEnd" runat="server"></asp:TextBox>
            <cc1:CalendarExtender ID="txtEnd_CalendarExtender" runat="server" 
                Enabled="True" TargetControlID="txtEnd">
            </cc1:CalendarExtender>
        </p>
        <asp:Button ID="Button1" runat="server" Text="Button" />
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>

答案 1 :(得分:1)

重新修改此代码

<asp:CompareValidator ID="cmpDates" runat="server" ControlToValidate="StartDate"
                  SetFocusOnError="true" ControlToCompare="EndDate"
                  ErrorMessage="EndDate must be greater than StartDate"
                  Operator="LessThan"
                  ValidationGroup="vg" Type="Date"                           
                  CultureInvariantValues="true"></asp:CompareValidator>

答案 2 :(得分:0)

CompareValidator默认情况下不适用于dd/mm/yyyy格式,因此您需要在{{1的页面指令中明确地将页面的Culture属性更改为en-GB或者您可以在ASP.Net Web Page

中添加它

Page Level

webconfig

Webconfig

<%@ Page Language="C#" 
    AutoEventWireup="true" 
    CodeFile="Default.aspx.cs" 
    Inherits="_Default" 
    Culture = "en-GB" %>

答案 3 :(得分:0)

我已经尝试过这种方法现在这适用于 dd-mm-yyyy 格式

web.config文件中的

<system.web>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" uiCulture="en-GB" /></system.web>

在.aspx页面中更新此内容

添加文化=&#34; zh-CN&#34;

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="filename.aspx.cs" Inherits="<%--your backend code--%>"   Culture = "en-GB"  %>

现在将CompareValidator添加到比较日期

 <asp:CompareValidator ID="CompareValidator1" ValidationGroup = "Date" ForeColor = "Red" runat="server" ControlToValidate = "startdate" ControlToCompare = "enddate" Operator = "LessThan" Type = "Date" ErrorMessage="Start date must be less than End date."></asp:CompareValidator>