2014-02-17 2 views
1

Почему валидатор не работает здесь. Тем не менее, он отлично работает для других элементов управления текстовыми полями. Ошибка отсутствует. Его просто делает обратную передачу.Обязательный полевой валидатор не работает для DropDownList

<asp:DropDownList Id="ddlCustomer" runat="server" AppendDataBoundItems="true" 
DataTextField="customername" DataValueField="customerid"> 
<asp:ListItem Text="--Select--" Value="0"></asp:ListItem> 
<asp:ListItem Text=" < Add New > " Value="0"></asp:ListItem> 
</asp:DropDownList> 

<asp:RequiredFieldValidator runat="server" ControlToValidate="ddlCustomer" 
cssclass="required" display="dynamic" errormessage="*" setfocusonerror="true" 
initialvalue="--Select--"></asp:RequiredFieldValidator> 

ответ

2

initialValue должно быть "0" не текст "--Выбор--"

, как показано ниже

<asp:RequiredFieldValidator runat="server" ControlToValidate="ddlCustomer" 
cssclass="required" display="dynamic" errormessage="*" setfocusonerror="true" 
initialvalue="0"></asp:RequiredFieldValidator> 
+0

Спасибо, что сработали. Но всегда ли это значение, а не текст. Если значение prop. не определено, тогда он будет работать только с одним текстом ... не так ли? – Ruby

+0

Нет, это не сработает. вы должны указать начальное значение –

2

Вы дали начальное значение как --Select-- в RequiredFieldValidator но нет элемент, который имеет значение --Select--, RequiredFieldValidtor срабатывает, когда он получает значение элемента, которое равно InitialValue. Поэтому в этом случае он никогда не будет стрелять.

Вам необходимо поставить 0 в InitialValue валидатора или изменить значение первого элемента DropDown.

<asp:RequiredFieldValidator runat="server" ControlToValidate="ddlCustomer" 
cssclass="required" display="dynamic" errormessage="*" setfocusonerror="true" 
InitialValue="0"></asp:RequiredFieldValidator> 

ИЛИ

<asp:ListItem Text="--Select--" Value="--Select--"></asp:ListItem> 

Но я бы рекомендовал вам использовать первый подход.

Смежные вопросы