我有DropDownList
绑定了SqlDataSource
以显示数据库中的值。
我无法使用RequiredFieldValidator
进行验证。
答案 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" />