2012-06-06 87 views
0

我有一個驗證對兩個驗證<telerik:RadDatePicker>開始日期和結束日期。驗證規則很簡單,檢查開始日期在結束日期更大,顯示錯誤信息給用戶,以糾正日期比較驗證問題在asp.net

它工作正常,但是當開始和結束日期相同它顯示的信息這不是預期的。下面的代碼:

<asp:CompareValidator ID="dateCompareValidator" runat="server" ControlToValidate="endDate" ControlToCompare="startDate" Operator="GreaterThan" Type="Date" ErrorMessage="Start Date is greater than the End Date - please correct dates."Display="Dynamic"></asp:CompareValidator> 

和日期選擇器對於兩個如下開始日期和結束日期:

<telerik:RadDatePicker CssClass="rcCalPopup" ID="endDate" runat="server" 
           Skin="Vista"> 
           <DateInput ID="DateInput2" runat="server" LabelCssClass="radLabelCss_Vista" Skin="Vista"> 
           </DateInput> 
           <Calendar ShowRowHeaders="false" ID="Calendar2" runat="server" UseRowHeadersAsSelectors="False" UseColumnHeadersAsSelectors="False" 
            ViewSelectorText="x" Skin="Vista"> 
           </Calendar> 
           <DatePopupButton CssClass="rcCalPopup"></DatePopupButton> 
          </telerik:RadDatePicker> 

回答

2

你和Validator定義的規則是:

  • 必須結束日期大於Startdate(注意等於缺失)

驗證器Operator屬性確定有效輸入的規則,而不是無效輸入。

所以,如果你想允許相等的約會,你必須使用GreaterThanEqual

<asp:CompareValidator ID="dateCompareValidator" runat="server" 
    ControlToValidate="endDate" ControlToCompare="startDate" 
    Operator="GreaterThanEqual" Type="Date" 
    ErrorMessage="End date must be equal or greater than start date - please correct dates."Display="Dynamic"> 
</asp:CompareValidator> 

請注意,我也相應改變了ErrorMessage。如果輸入控件爲空,則不會調用驗證函數並驗證成功。使用RequiredFieldValidator控件要求用戶在輸入控件中輸入數據。

+0

優秀。錯過了一個簡單的。謝謝你@Tim – TRR