如何向DropDownList控件添加RequiredFieldValidator?

问题描述 投票:0回答:5

我有一个

DropDownList
SqlDataSource
绑定来显示数据库中的值。

我无法使用

RequiredFieldValidator
进行验证。

asp.net validation drop-down-menu requiredfieldvalidator
5个回答
106
投票

在大多数情况下,您将其视为正在验证任何其他类型的控件,但使用必填字段验证器的 InitialValue 属性。

<asp:RequiredFieldValidator ID="rfv1" runat="server" ControlToValidate="your-dropdownlist" InitialValue="Please select" ErrorMessage="Please select something" />

基本上,它的意思是,如果在下拉列表中选择了 InitialValue 中设置的 1 之外的任何其他值,则验证将会成功。

如果数据绑定,您需要在后面插入“请选择”值,如下所示

this.ddl1.Items.Insert(0, "Please select");

31
投票

假设您的下拉列表是:

<asp:DropDownList runat="server" id="ddl">
<asp:ListItem Value="0" text="Select a Value">
....
</asp:DropDownList>

有两种方法:

<asp:RequiredFieldValidator ID="re1" runat="Server" InitialValue="0" />

第二种方法是使用比较验证器:

<asp:CompareValidator ID="re1" runat="Server" ValueToCompare="0" ControlToCompare="ddl" Operator="Equal" />

13
投票

如果您使用数据源,这里有另一种无需后台代码的方法。

注意以下要点:

  • ListItem
    Value="0"
    在源码页面,不是在代码中添加的
  • 如果不包含,源代码中的
    ListItem
    将被覆盖
    AppendDataBoundItems="true"
    DropDownList
  • InitialValue="0"
    告诉验证器这是 应该触发该验证器(如其他答案中指出的)

示例:

<asp:DropDownList ID="ddlType" runat="server" DataSourceID="sdsType"
                  DataValueField="ID" DataTextField="Name" AppendDataBoundItems="true">
    <asp:ListItem Value="0" Text="--Please Select--" Selected="True"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="rfvType" runat="server" ControlToValidate="ddlType" 
                            InitialValue="0" ErrorMessage="Type required"></asp:RequiredFieldValidator>
<asp:SqlDataSource ID="sdsType" runat="server" 
                   ConnectionString='<%$ ConnectionStrings:TESTConnectionString %>'
                   SelectCommand="SELECT ID, Name FROM Type"></asp:SqlDataSource>

1
投票

InitialValue="0" :当在 ddl 中选择第 0 个索引项时,将触发初始验证。

<asp:RequiredFieldValidator InitialValue="0" Display="Dynamic" CssClass="error" runat="server" ID="your_id" ValidationGroup="validationgroup" ControlToValidate="your_dropdownlist_id" />

0
投票

如果您想检查空字符串,请使用以下命令:

<asp:RequiredFieldValidator ID="REQUIREDFIELDVALIDATOR1" ControlToValidate="ControlId" runat="server" ValidationGroup="groupName" InitialValue="" Display="Dynamic" ErrorMessage="Please select" SetFocusOnError="true"></asp:RequiredFieldValidator>
© www.soinside.com 2019 - 2024. All rights reserved.