我使用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>
答案 0 :(得分:2)
您必须指定Type至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>