如何将RequiredFieldValidator添加到DropDownList控件?

use*_*375 62 asp.net validation requiredfieldvalidator drop-down-menu

我有一个DropDownList带有a 的绑定SqlDataSource来显示数据库中的值.

我无法使用a验证RequiredFieldValidator.

Fis*_*ake 97

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

<asp:RequiredFieldValidator ID="rfv1" runat="server" ControlToValidate="your-dropdownlist" InitialValue="Please select" ErrorMessage="Please select something" />
Run Code Online (Sandbox Code Playgroud)

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

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

this.ddl1.Items.Insert(0, "Please select");
Run Code Online (Sandbox Code Playgroud)

  • @Fishcake,你需要有InitialValue ="0".你答案中的其他一切都很好. (12认同)
  • 如果你按如下方式填充它:`ddl1.Items.Insert(0,new ListItem("Please select","0"));`那么你确实需要设置`InitialValue ="0"` (6认同)
  • 我会以这种方式添加顶部项目,而不是从代码隐藏插入:`&lt;asp:DropDownList ID="ddlDepo" runat="server" AppendDataBoundItems="true"&gt; &lt;asp:ListItem Text="Please select" Value="0" &gt;&lt;/asp:ListItem&gt; &lt;/asp:DropDownList&gt;` (2认同)

Bha*_*kar 24

假设您的下拉列表是:

<asp:DropDownList runat="server" id="ddl">
<asp:ListItem Value="0" text="Select a Value">
....
</asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

你有两种方式:

<asp:RequiredFieldValidator ID="re1" runat="Server" InitialValue="0"....
Run Code Online (Sandbox Code Playgroud)

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

<asp:CompareValidator ID="re1" runat="Server" ValueToComare="0" ConroltoCompare="ddl" Operator="Equel"....
Run Code Online (Sandbox Code Playgroud)


Ton*_* L. 11

如果您使用的是数据源,这是另一种无需代码的方法.

请注意以下要点:

  • ListItemValue="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>
Run Code Online (Sandbox Code Playgroud)