2016-12-06 30 views
2

我有兩個DropDownLists填充Year-Dates,並且我想在第二個ddls值小於第一個ddls值的情況下顯示錯誤消息。如何使用比較驗證器比較兩個下拉列表值之間的數據?

這是迄今爲止我已經使用的代碼,它不工作:

<asp:CompareValidator 
     ID="cvEndYear2" Operator="GreaterThan" runat="server" CssClass="text-danger" 
     ValidationGroup="Save" ControlToValidate="ddlEndYear" Display="Dynamic" 
     ValueToCompare="ddlStartYear" ErrorMessage="Greater Than" SetFocusOnError="true"> 
    </asp:CompareValidator> 
+0

看看:http://stackoverflow.com/questions/9372901/asp-net-compare-validator-to-validate-date –

+0

如果它不起作用,它是什麼呢? –

回答

2

您必須指定ControlToCompareOperator

<asp:CompareValidator 
    ID="cvEndYear2" Operator="GreaterThan" runat="server" CssClass="text-danger" 
    ValidationGroup="Save" 
    ControlToValidate="ddlEndYear" Display="Dynamic" 
    ControlToCompare="ddlStartYear" 
    Operator="GreaterThanEqual" 
    Type="Integer" 
    ErrorMessage="The end year must be greater/equal the start year" SetFocusOnError="true"> 
</asp:CompareValidator> 
+1

要麼使用「ControlToCompare」或「ValueToCompare」,而不是在同一時間 –

+1

@EhsanSajjad:謝謝。但是,msdn [提及](https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.comparevalidator.controltocompare(v = vs.110).aspx):「如果兩個屬性被設置,ControlToCompare屬性優先「。由於OP想要比較兩個控件,他必須使用ControlToCompare。那是對的嗎? –

+0

這解決了我的問題,謝謝! – Null

2

您還沒有指定的類型,指定將在文本框的數據類型:

<asp:CompareValidator 
     .......... 
     .......... 
     ControlToValidate="ddlStartYear" 
     ControlToCompare="ddlEndYear" 
     Operator="GreaterThanEqual" 
     Type="Integer"> 
    </asp:CompareValidator> 

你可能想看看at this tutorial

+0

我已經嘗試整數和字符串類型,也不工作 – Null

+0

['ValueToCompare'](https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.comparevalidator.valuetocompare(v = vs.110).aspx)與一個常數值進行比較,OP想要與另一個下拉列表的值進行比較。 –

+0

你是對的@TimSchmelter,糾正它 –