使用DropDownList的ASP.Net自定义验证器控件

Har*_*ari 4 asp.net

以下代码用于使用Custom Validator验证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>
Run Code Online (Sandbox Code Playgroud)

Default1.aspx.cs

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

以上验证未经验证.我不知道如何使用此控件并验证DropDownList.请更正错误.

Fal*_*als 8

你应该使用RequireValidator.

1)添加"选择"项的值,将用于验证初始值:

<asp:DropDownList ID="DDL_Product" runat="server" Height="21px" Width="128px">
       <asp:ListItem Value="0">Select</asp:ListItem>
       /*Rest of items*/
</asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

编辑:

有关解释,请访问MSDN:

CustomValidator类

使用CustomValidator控件为输入控件提供用户定义的验证功能.CustomValidator控件是与其验证的输入控件分开的控件,允许您控制验证消息的显示位置.

RequiredFieldValidator类

使用此控件可使输入控件成为必填字段.如果输入控件在失去焦点时其值未从InitialValue属性更改,则验证将失败.