当两个数字在ASP.NET中为负数时,CompareValidator失败

时间:2013-07-08 23:29:00

标签: asp.net

我使用SQL数据源填充两个下拉列表,其中包含多年的事件。我想确保第二年大于或等于第一年。但是,有些日期是否定的,表明它们是BCE。我的CompareValidator在第二年为正时起作用但如果两者都为负,则告诉我第二年小于第一年。

例如:

第1年:-2000

第二年:123

这很好,比较没有问题。

但是如果

第1年:-227

第二年:-13

有时候说Year2比Year1少。

以下是代码:

Start Date:  
<asp:DropDownList ID="Year1DropDown" runat="server"
DataSourceID="YearDataSource" DataValueField="YEAR" DataTextField="YEAR"
OnDataBound="AddDefaultItemYear1">
</asp:DropDownList><br />

End Date:
<asp:DropDownList ID="Year2DropDown" runat="server"
DataSourceID="YearDataSource" DataValueField="YEAR" DataTextField="YEAR"
OnDataBound="AddDefaultItemYear2">
</asp:DropDownList><br />

<asp:CompareValidator ID="CompareYears" runat="server" 
ControlToValidate="Year2DropDown" ControlToCompare="Year1DropDown"
Operator="GreaterThanEqual" ErrorMessage="End date must be greater than or equal to start date"></asp:CompareValidator>

1 个答案:

答案 0 :(得分:2)

您必须指定TypeInteger,因为默认数据类型为String

<asp:CompareValidator ID="CompareYears" runat="server" 
Type="Integer" 
ControlToValidate="Year2DropDown" ControlToCompare="Year1DropDown"
Operator="GreaterThanEqual" ErrorMessage="End date must be greater than or equal to start date"></asp:CompareValidator>