如何将RequiredFieldValidator添加到DropDownList控件?

时间:2010-02-17 12:34:22

标签: asp.net validation drop-down-menu requiredfieldvalidator

我有DropDownList绑定了SqlDataSource以显示数据库中的值。

我无法使用RequiredFieldValidator进行验证。

4 个答案:

答案 0 :(得分:94)

在大多数情况下,您将其视为验证任何其他类型的控件,但使用所需字段验证器的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");

答案 1 :(得分:23)

假设您的下拉列表是:

<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" ValueToComare="0" ConroltoCompare="ddl" Operator="Equel"....

答案 2 :(得分:10)

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

请注意以下要点:

  • ListItem的{​​{1}}位于源页面上,未添加到代码中
  • 如果您不包含,则会覆盖源中的Value="0" ListItem
  • 中的AppendDataBoundItems="true"
  • DropDownList告诉验证者这是值 应该触发验证器(如其他答案中所指出的)

示例:

InitialValue="0"

答案 3 :(得分:0)

InitialValue =“ 0”:在ddl中选择第0个索引项时,将启动初始验证。

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