2010-04-16 69 views
1

我有2个文本框,我填写StartDate和Endate。
我想使用compareValidator来确保StartDate小于EndDate。我用这个:帮助比较验证在c#

<asp:CompareValidator ID="Comp" ControlToValidate="txtStartDate" ControlToCompare="txtEndDate" Operator="LessThan" Type="Date" runat="server" Display="dynamic" Text="Failed!" /> 

验证器总是给我失败无论日期是什么。如果startdate> endate或者反之亦然,则显示Failed。
我在文本框中使用(MM/dd/yyyy)格式。编辑: 好的,我解决了这个问题。如果有人在这里感兴趣的是新的比较验证器:

<asp:CompareValidator ID="Comp" ControlToValidate="txtEndDate" ControlToCompare="txtStartDate" Operator="GreaterThan" Type="Date" runat="server" Display="dynamic" Text="Failed!" /> 
+0

如果我删除了的errorMessage再没有消息将在所有显示....所以不会发生验证! – scatman 2010-04-16 07:29:18

回答

1

这里的技巧是ControlToValidate和ControlToCompare。

在您的情况下,ControlToValidate应该是具有开始日期的文本框,而ControlToCompare应该包含具有结束日期的文本框。有时候人们会混淆他们。

我用这个代码来检查

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
     <asp:CompareValidator ID="CompareValidator1" runat="server" 
      ErrorMessage="start date should be less than end date" ControlToCompare="TextBox2" 
      ControlToValidate="TextBox1" Display="Dynamic" Operator="LessThan" Type="Date"></asp:CompareValidator> 

我希望它能帮助