【问题标题】:Dropdown RequiredField Validation下拉必填字段验证
【发布时间】:2015-12-29 05:17:55
【问题描述】:

我有以下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。怎么了?

【问题讨论】:

  • 您的代码在我这边运行良好。
  • 尝试设置ValidationGroup属性

标签: asp.net dropdownbox requiredfieldvalidator


【解决方案1】:

<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。

您也可以在没有按钮的情况下使用它。但是您需要确保验证组是正确的。

在页面加载时,验证器不会抛出错误。如果您选择了“月份”然后再次选择初始值,它将引发错误。如果这是有道理的:)

【讨论】:

    【解决方案2】:

    我已经用我的本地版本测试了你的代码,它工作正常。在这种情况下,我可以给出的唯一建议是为验证控件和按钮指定 ValidationGroup="",如下所示。

    <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" />
    

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

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

    【讨论】:

      猜你喜欢
      • 2014-04-14
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多