asp.net下拉列表的验证器

Chr*_*ris 5 asp.net validation drop-down-menu

我有一个下拉列表,我从服务器端加载.

<asp:DropDownList ID="ddlOne" runat="server"  CssClass="dropDrownClass" Width="80%">
Run Code Online (Sandbox Code Playgroud)

在服务器端,加载下拉后我正在添加

- 请选择 -

我想确保如果选择它,我会显示错误消息.为此,我写了

<asp:CompareValidator ID="CompareValidator1" runat="server" 
                          ControlToValidate="ddlOne" ValueToCompare="-- Please Select --" Operator="Equal"  Type="String"   ErrorMessage="CompareValidator"></asp:CompareValidator>
                        <asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" TargetControlID="CompareValidator1" runat="server">
                        </asp:ValidatorCalloutExtender>
Run Code Online (Sandbox Code Playgroud)

但只要我在下拉列表中选择任何内容,它就会向我显示错误消息.当我将验证器更改为

<asp:CompareValidator ID="CompareValidator1" runat="server" 
                          ControlToValidate="ddlOne" ValueToCompare="0" Operator="Equal"  Type="Integer"  ErrorMessage="CompareValidator"></asp:CompareValidator>
Run Code Online (Sandbox Code Playgroud)

我收到每个选择的错误信息,除了第一个 - 请选择 - .

请让我知道如何验证下拉列表中的第一项

问题2

我收到双重消息,一个在下拉列表下[显示错误"Carson63000"红色]和一个弹出[验证器呼出].同样的消息.我希望只有验证器标注才能显示该消息.

Car*_*000 12

您的验证器将比较下拉列表的选定项目的,而不是文本.最简单的方法通常是为"请选择"项的值设置一个空字符串,为其他项设置一个非空值,然后只使用一个RequiredFieldValidator.

另外,a CompareValidatorwith ValueToCompare="-- Please Select --"Operator="Equal"means:检查下拉列表的值,并验证它是否等于" - Please Select - "; 如果没有,则显示错误.这与你需要的完全相反 - 你想要改变运算符,Operator="NotEqual"如果你想采用的方法CompareValidator.