下拉必需字段验证

时间:2015-10-01 08:20:26

标签: asp.net dropdownbox requiredfieldvalidator

我有以下Dropdown控件

<asp:dropdownlist id="ddlMonth" runat="server" Width="150px" Height="16px">
 <asp:ListItem Value="-1">--Select--</asp:ListItem>
 <asp:ListItem Value="1">January</asp:ListItem>
 <asp:ListItem Value="2">February</asp:ListItem>
 <asp:ListItem Value="3">March</asp:ListItem>
</asp:dropdownlist>

RequiredFieldValidator验证此下拉列表

<asp:RequiredFieldValidator ID="rfv1" runat="server" ControlToValidate="ddlMonth" InitialValue="-1" ErrorMessage="Please select a month" />

尽管选择了--Select--选项,但它并没有抛出ErrorMessage。有什么问题?

2 个答案:

答案 0 :(得分:0)

<asp:dropdownlist id="ddlMonth" runat="server" Width="150px" Height="16px" ValidationGroup="ValidateDropDown">
     <asp:ListItem Value="-1">--Select--</asp:ListItem>
     <asp:ListItem Value="1">January</asp:ListItem>
     <asp:ListItem Value="2">February</asp:ListItem>
     <asp:ListItem Value="3">March</asp:ListItem>
    </asp:dropdownlist>

<asp:RequiredFieldValidator ID="rfv1" runat="server" ControlToValidate="ddlMonth" InitialValue="-1" ErrorMessage="Please select a month" ValidationGroup="ValidateDropDown" />

<asp:Button ID="btn1_Submit" runat="server" ValidationGroup="ValidateDropDown" />

您必须确保所有项目都具有相同的ValidationGroup。

你也可以没有按钮。但您需要确保验证组正确无误。

在页面加载时,验证程序不会抛出错误。如果您选择了'月',则会抛出错误,然后再次选择初始值。如果这是有道理的:)

答案 1 :(得分:0)

我已使用我的本地版本测试了您的代码,但它运行正常。我在这种情况下可以给出的唯一建议是指定ValidationGroup =&#34;&#34;用于验证控制和按钮,如下所示。

<asp:DropDownList ID="ddlMonth" runat="server" Width="150px" Height="16px" ValidationGroup="month">
     <asp:ListItem Value="-1">--Select--</asp:ListItem>
     <asp:ListItem Value="1">January</asp:ListItem>
     <asp:ListItem Value="2">February</asp:ListItem>
     <asp:ListItem Value="3">March</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="rfv1" runat="server" ControlToValidate="ddlMonth" InitialValue="-1" ErrorMessage="Please select a month" ValidationGroup="month" />
<asp:Button ID="btn" runat="server" CausesValidation="true" ValidationGroup="month" Text="submit" />

可能的情况是更新面板。如果您已将代码放在更新面板中,则尝试始终设置更新模式并检查是否仍然导致问题。

我现在只能说,因为你还没有分享你的整个代码。但是上面的代码在我当地的环境中正常运行。