asp CompareValidator на 2 выпадающих - PullRequest
1 голос
/ 03 октября 2011

Сценарий:

У меня есть следующие элементы управления:

<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 dropDown имели одинаковые значения, за исключением «-1», которое является значением по умолчаниюлюбого раскрывающегося списка.

Могу ли я добиться этого с помощью CompareValidator?или я должен использовать javascript?

заранее спасибо

Ответы [ 2 ]

1 голос
/ 03 октября 2011

Для сравнения, валидатор сравнения верен.Но для начального значения (-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" /> 
1 голос
/ 03 октября 2011

Один CompareValidator сам по себе не будет делать то, что вам нужно, но вы можете просто добавить еще один CompareValidator к вашей настройке.Типичный ASP.NET DropDownList не имеет значения по умолчанию, если оно пустое.Это основано на первом пункте в списке.Я не уверен, что используемые вами элементы управления telerik имеют значение по умолчанию -1, но если они это делают, вы можете добавить один или два CompareValidators для каждого раскрывающегося списка, установить атрибут ValueToCompare и проверить NotEqual:

<asp:CompareValidator ID="cv3" runat="server" ValidationGroup="g1" 
ControlToValidate="lst1" ValueToCompare="-1" Operator="NotEqual" 
Text="Empty value is not allowed" Type="String" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...