2014-02-04 5 views
0

Вот мой DDL и RequiredFieldValidator:Я использую неверный валидатор?

<asp:DropDownList ID="ddlCurrentlyActive" runat="server"> 
    <asp:ListItem Text="Select Option" Selected="True" disabled="diaabled" /> 
    <asp:ListItem Value="True" Text="True" /> 
    <asp:ListItem Value="False" Text="False" /> 
</asp:DropDownList> 

<asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" ErrorMessage="Please select if the job is active or no active." ControlToValidate="ddlCurrentlyActive" ForeColor="red" /> 

Я подумал, если я отключил «Select Option» и добавил RequiredFieldValidator было бы предотвратить их от того, чтобы выбрать «Select Option». Но кажется, что когда страница загружает эту опцию, и если она не меняет ее, она пытается передать ее как значение для базы данных, ведущую к усеченной ошибке.

Может ли это работать с RequiredFieldValidator? Или мне нужен RegularExpressionValidator, и если да, то как бы установить его?

ответ

2

Прежде всего, необходимо присвоить какое-то значение для опции по умолчанию:

<asp:ListItem Text="Select Option" Selected="True" Value="0" /> 

А потом сказать валидатор, что это значение является начальным и следует рассматривать как недействительные. Вы можете сделать это с помощью атрибута InitialValue:

<asp:RequiredFieldValidator ID="RequiredFieldValidator7" 
          runat="server" 
          ErrorMessage="Please select if the job is active or no active." 
          ControlToValidate="ddlCurrentlyActive" 
          InitialValue="0" 
          ForeColor="red" /> 
+0

Я не знал об этом, спасибо! –

0

Что сказал Андрей, должно работать, но есть и другой способ сделать это. Вы можете просто предоставить пустое значение для вашего варианта по умолчанию и пнет валидатора без указания параметра InitialValue на валидатор

<asp:DropDownList ID="ddlCurrentlyActive" runat="server"> 
    <asp:ListItem Text="Select Option" Selected="True" Value="" /> 
    <asp:ListItem Value="True" Text="True" /> 
    <asp:ListItem Value="False" Text="False" /> 
</asp:DropDownList> 

<asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" ErrorMessage="Please select if the job is active or no active." ControlToValidate="ddlCurrentlyActive" ForeColor="red" /> 
Смежные вопросы