场景:
我有以下控件:
<telerik:RadComboBox ID="dd1" runat="server" ValidationGroup="g1" InitialValue="-1" />
<telerik:RadComboBox ID="dd2" runat="server" ValidationGroup="g1" InitialValue="-1" />
<asp:CompareValidator ID="cv" runat="server" ValidationGroup="g1" InitialValue="-1"
ControlToValidate="dd1" ControlToCompare="dd2" Operator="NotEqual" Text="error"
Type="String" />
我不希望2 dropDowns具有相同的值,不包括“-1”,这是任何下拉列表的默认值。
我可以使用compareValidator实现这个目的吗?或者我应该使用javascript吗?
提前致谢
答案 0 :(得分:1)
单个CompareValidator本身不能满足你的需要,但你可以在那里添加另一个CompareValidator。如果为空,典型的ASP.NET DropDownList没有默认值。它基于列表中的第一项。我不确定您使用的telerik控件是否具有默认值-1,但如果它们确实如此,则可以为每个下拉列表添加一个或两个CompareValidator并设置ValueToCompare属性,并检查NotEqual:
<asp:CompareValidator ID="cv3" runat="server" ValidationGroup="g1"
ControlToValidate="lst1" ValueToCompare="-1" Operator="NotEqual"
Text="Empty value is not allowed" Type="String" />
答案 1 :(得分:1)
对于比较,比较验证器是正确的。但是对于初始值(-1),您需要为两个下拉列表添加必需的字段验证器。因此用户必须选择值。
<telerik:RadComboBox ID="dd1" runat="server" ValidationGroup="g1" InitialValue="-1" />
<asp:RequiredFieldValidator ID="reqv1" runat="server" ErrorMessage="Please select value" ControlToValidate="dd1" ValidationGroup="g1" InitialValue="-1"></asp:RequiredFieldValidator>
<telerik:RadComboBox ID="dd2" runat="server" ValidationGroup="g1" InitialValue="-1" />
<asp:RequiredFieldValidator ID="reqv2" runat="server" ErrorMessage="Please select value" ControlToValidate="dd2" ValidationGroup="g1" InitialValue="-1"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="cv" runat="server" ValidationGroup="g1" InitialValue="-1"
ControlToValidate="dd1" ControlToCompare="dd2" Operator="NotEqual" Text="error"
Type="String" />