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

<asp:DropDownList ID="ddlOne" runat="server"  CssClass="dropDrownClass" Width="80%">

在服务器端,加载下拉列表后,我要添加



我想确保如果选择了该选项,那么我将显示错误消息。为此,我写了
<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>

但是,只要我在下拉列表中选择任何内容,它就会向我显示错误消息。
当我将验证器更改为
<asp:CompareValidator ID="CompareValidator1" runat="server"
                          ControlToValidate="ddlOne" ValueToCompare="0" Operator="Equal"  Type="Integer"  ErrorMessage="CompareValidator"></asp:CompareValidator>

除第一个选项-请选择-之外,我在所有选择中均收到错误消息。

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

第2期

我收到双重消息,一个消息在下拉列表下(该消息以红色显示错误“Carson63000”),另一个消息作为弹出窗口(验证程序调用)。相同的消息。
我希望只有验证者标注才能显示该消息。

最佳答案

您的验证程序将比较下拉菜单中所选项目的值,而不是文本。最简单的方法通常是对“Please Select”项的值使用一个空字符串,对其他项使用一个非空值,然后仅使用RequiredFieldValidator

另外,带有CompareValidatorValueToCompare="-- Please Select --"Operator="Equal"意味着:检查下拉列表的值,并验证其等于“-Please Select-”;如果不是,则显示错误。这与您所需要的完全相反-如果您想采用使用Operator="NotEqual"的方法,则希望将运算符更改为CompareValidator

10-05 20:43
查看更多