1

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

例如:

第一年:-2000

第二年:123

这很好,比较没有问题。

然而,如果

第一年:-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>
4

1 回答 1

2

您必须将类型指定为Integer,因为默认数据类型是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>
于 2013-07-08T23:34:15.263 回答