vb.net ASP.NET 中下拉列表的必填字段验证器

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/21375144/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-17 16:35:07  来源:igfitidea点击:

Required Field Validator for Dropdown list in ASP.NET

asp.netvb.netdrop-down-menurequiredfieldvalidator

提问by MusicLovingIndianGirl

I have the following dropdown in my page

我的页面中有以下下拉列表

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

And a RequiredFieldValidatorfor it

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>

But I do not get the Validation Message. What am I missing?

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

回答by Sid M

You have taken Display="None"in RequiredFieldValidatortake it as

你已经采取了Display="None"RequiredFieldValidator把它作为

Display="Dynamic"

and take InitialValue="Null"

并采取 InitialValue="Null"

also assign the same validation group to drop down list

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

i.e. ValidationGroup="valEmployer"

IE ValidationGroup="valEmployer"

回答by Arun Chandran C

try with InitialValue

尝试 InitialValue

InitialValue="Null" Display="Dynamic" 

回答by samar

It works. Just make the following 3 changes:

有用。只需进行以下 3 处更改:

  1. Either remove Display="None"or use Display="Dynamic"in RequiredFieldValidator

  2. Set ValidationGroup="valEmployer"to dropdown as well as the button for which the validation should occur

  3. Set InitialValue="Null"instead of InitialValue="null"in RequiredFieldValidator with capital "N"

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

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

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

The following is the code

以下是代码

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

Hope this helps.

希望这可以帮助。

回答by Teju MB

This is working for me-

这对我有用-

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

Keep ValidationGroup="valEmployer"on which event you want to fire the Validations.

ValidationGroup="valEmployer"保留在要触发验证的事件上。

回答by user3218477

Remove ValidationGroup="valEmployer" property from the RequiredFieldValidator control and set InitialValue="Null" instead of "null" in RequiredFieldValidator control. Set Display=Dynamic. Try this.

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

回答by user3218477

Add ValidationGroup="valEmployer"property in dropdownlist and in the button on click of which validation occurs.

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

OR

或者

Just remove ValidationGroup="valEmployer"property from the RequiredFieldValidatorcontrol.

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