2013-07-15 2 views
4

Следующий код используется для проверки управления DropDownList с помощью Custom Validator.ASP.Net Custom Validator control с DropDownList

Default1.aspx

<td> 
     <asp:DropDownList ID="DDL_Product" runat="server" Height="21px" Width="128px"> 
      <asp:ListItem>Select</asp:ListItem> 
      <asp:ListItem>Nokia</asp:ListItem> 
      <asp:ListItem>LG</asp:ListItem> 
      <asp:ListItem>Samsung</asp:ListItem> 
      <asp:ListItem>sony</asp:ListItem> 
      <asp:ListItem>Micromax</asp:ListItem> 
      <asp:ListItem>Karbonn</asp:ListItem> 
      <asp:ListItem>Apple</asp:ListItem> 
     </asp:DropDownList> 
    </td> 
    <td> 
     <asp:CustomValidator ID="cv1" Display="Dynamic" ControlToValidate = "DDL_Product" OnServerValidate="ddl_server" runat="server" ForeColor="Red" ErrorMessage="Please Select the Product"></asp:CustomValidator> 
    </td> 

Default1.aspx.cs

protected void ddl_server(object sender, ServerValidateEventArgs e) 
{ 
    if (e.Value.selectedIndex <= 0) 
    { 
     e.IsValid = true; 
    } 
    else 
    { 
     e.IsValid = false; 
    } 
} 

выше проверки не валидации. Я не знаю, как использовать этот элемент управления и проверить DropDownList. Исправьте ошибку.

+0

Что именно вы хотите проверить, «DropDownList» имеет выбранное значение? – EmmanuelRC

+0

есть. Если значение индекса не может измениться с 0 или его значение не может измениться с «Выбрать». – Hari

+0

Тогда вам не нужен 'CustomeValidator', вам нужен' RequiredFieldValidator'. – EmmanuelRC

ответ

7

Для этого следует использовать RequireValidator.

1) Добавить значение для «Select» пункта будет использоваться для проверки исходного значения:

<asp:DropDownList ID="DDL_Product" runat="server" Height="21px" Width="128px"> 
     <asp:ListItem Value="0">Select</asp:ListItem> 
     /*Rest of items*/ 
</asp:DropDownList> 

2) Затем используйте RequireValidator как это, сравнивая начальное значение из DDL:

<asp:RequiredFieldValidator InitialValue="0" 
    ID="rfvDDL_Product" Display="Dynamic" 
    ControlToValidate="DDL_Product" 
    runat="server" Text="*" 
    ErrorMessage="Please Select the Product" 
    ForeColor="Red"> 
</asp:RequiredFieldValidator> 

EDIT:

Для объяснения, из MSDN:

CustomValidator Class

Используйте регулятор CustomValidator, чтобы обеспечить определенную пользователем функцию проверки для управления вводом. Элемент управления CustomValidator представляет собой отдельный элемент управления из управляющего элемента управления, который позволяет вам определять , где будет отображаться сообщение проверки.

RequiredFieldValidator Class

использовать этот элемент управления, чтобы сделать входной контроль обязательное поле. Элемент управления не прошел проверку, если его значение не изменилось с свойства InitialStalпосле потери фокуса.

+0

Спасибо большое. Его работа. Могу ли я узнать, как это сделать, зачем использовать RequiredFieldValidator здесь и где пользовательский валидатор применим для использования. – Hari

+0

Взгляните, я отредактировал сообщение, чтобы дать вам больше информации! – Fals

1

Просьба добавить объект AutoPostBack="true" в DropDownList.

<asp:DropDownList ID="DDL_Product" runat="server" Height="21px" Width="128px" 
        AutoPostBack="true"> 

, а также, если это только, чтобы проверить, если было выбрано значение, рекомендуется использовать вместо RequiredFieldValidator.