【问题标题】:Required Field Validator for Dropdown list in ASP.NETASP.NET 中下拉列表的必填字段验证器
【发布时间】:2014-01-27 07:26:09
【问题描述】:

我的页面中有以下下拉菜单

<asp:DropDownList ID="cboEmployerType" runat="server" TabIndex="8" Width="60%" onclick="javascript:shouldsubmit=false;">
                       <asp:ListItem Value="Null">-Select-</asp:ListItem>
                       <asp:ListItem Value="E">Employer</asp:ListItem>
                       <asp:ListItem Value="O">OJT Provider</asp:ListItem>
                   </asp:DropDownList>

还有一个 RequiredFieldValidator

<asp:RequiredFieldValidator ID="cboEmployerType_RequiredFieldValidator" runat="server" InitialValue="null" ErrorMessage="Employer Type Required" ForeColor="Red" Font-Size="0.9em" ControlToValidate="cboEmployerType" ValidationGroup="valEmployer" Display="None"></asp:RequiredFieldValidator>

但我没有收到验证消息。我错过了什么?

【问题讨论】:

  • 不太确定这是否是问题所在,但请尝试将 InitialValue="null" 替换为 InitialValue="Null",在 Null 中使用大写字母“N”。
  • 尝试将 ValidationGroup="valEmployer" 添加到 DropDown .....

标签: asp.net vb.net drop-down-menu requiredfieldvalidator


【解决方案1】:

你已经把Display="None"拿在RequiredFieldValidator当作

Display="Dynamic"

并采取InitialValue="Null"

还将相同的验证组分配给下拉列表

ValidationGroup="valEmployer"

【讨论】:

    【解决方案2】:

    它有效。只需进行以下 3 项更改:

    1. 在RequiredFieldValidator 中删除Display="None" 或使用Display="Dynamic"

    2. ValidationGroup="valEmployer" 设置为下拉菜单以及应进行验证的按钮

    3. 在RequiredFieldValidator 中用大写“N”设置InitialValue="Null" 而不是InitialValue="null"

    以下是代码

        <asp:DropDownList ID="cboEmployerType" ValidationGroup="valEmployer" runat="server" TabIndex="8" Width="60%" onclick="javascript:shouldsubmit=false;">
                       <asp:ListItem Value="Null">-Select-</asp:ListItem>
                       <asp:ListItem Value="E">Employer</asp:ListItem>
                       <asp:ListItem Value="O">OJT Provider</asp:ListItem>
                   </asp:DropDownList>
    
                   <asp:RequiredFieldValidator ID="cboEmployerType_RequiredFieldValidator" runat="server" InitialValue="Null" ErrorMessage="Employer Type Required" ForeColor="Red" Font-Size="0.9em" ControlToValidate="cboEmployerType" ValidationGroup="valEmployer"  Display="Dynamic"></asp:RequiredFieldValidator>
                   <br />
        <asp:Button ID="Button1" ValidationGroup="valEmployer" runat="server" Text="Button" />
    

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      试试InitialValue

      InitialValue="Null" Display="Dynamic" 
      

      【讨论】:

      • 你试过这里列出的所有选项都几乎一样吗?
      • 听起来不错。我已经将我的答案从“null”更新为“Null”你没注意到吗?
      • 是的,我做到了。应该是晚了。不管怎样,迟到总比没有好:)
      【解决方案4】:

      从 RequiredFieldValidator 控件中删除 ValidationGroup="valEmployer" 属性 并在RequiredFieldValidator 控件中设置InitialValue="Null" 而不是"null"。 设置显示=动态。 试试这个。

      【讨论】:

        【解决方案5】:

        在下拉列表和点击验证发生的按钮中添加ValidationGroup="valEmployer"属性。

        只需从 RequiredFieldValidator 控件中删除 ValidationGroup="valEmployer" 属性即可。

        【讨论】:

          【解决方案6】:

          这对我有用-

            <asp:DropDownList ID="cboEmployerType" ValidationGroup="valEmployer" runat="server" TabIndex="8" Width="60%" onclick="javascript:shouldsubmit=false;">
                         <asp:ListItem Value="Null">-Select-</asp:ListItem>
                         <asp:ListItem Value="E">Employer</asp:ListItem>
                         <asp:ListItem Value="O">OJT Provider</asp:ListItem>
                     </asp:DropDownList>
              <asp:RequiredFieldValidator ID="cboEmployerType_RequiredFieldValidator" ValidationGroup="valEmployer"  runat="server" InitialValue="Null" ErrorMessage="Employer Type Required" ForeColor="Red" Font-Size="0.9em" ControlToValidate="cboEmployerType"  Display="Dynamic"></asp:RequiredFieldValidator>
          

          保持 ValidationGroup="valEmployer" 您要触发验证的事件。

          【讨论】:

            猜你喜欢
            • 2014-04-14
            • 2011-07-15
            • 1970-01-01
            • 2015-12-29
            • 1970-01-01
            • 2017-07-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多