2010-04-16 77 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> 

我希望它能幫助