在asp.net中选择单选按钮值时隐藏/显示字段

Hide/show fields upon selecting a radiobutton value in asp.net

本文关键字:隐藏 显示 字段 单选按钮 asp net 选择      更新时间:2023-09-26

我是c# asp.net的新手。我正在试着做一个网上注册表格。我正在努力解决以下问题。有人能帮我一下吗?

这个问题有5个字段
1) 类别:这是一个单选按钮,有两个选项->学生和教职员工
2) Course:这是一个下拉菜单
3) 学期:这是一个下拉菜单
4) Department :这是一个自由文本字段
5) 指定:这是一个自由文本字段

如果最终用户选择Student单选按钮,则Course &学期字段应该是可见的,部门&标识不应该是可见的

如果最终用户选择Staff单选按钮,则department &指定字段应该是可见的,并且Course &学期不应该是可见的

有人能帮我完成这个吗?代码如下:

        <div class="col-lg-10">
            <div class="radio">
                <label>
                    <asp:RadioButtonList ID="category" runat="server">
                        <asp:ListItem Text="Student" Value="student"></asp:ListItem>
                        <asp:ListItem Text="Staff" Value="staff"></asp:ListItem>
                    </asp:RadioButtonList>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator21" runat="server" ControlToValidate="category" ErrorMessage="Category is Requried" Style="color: #58CB00"></asp:RequiredFieldValidator>
                </label>
            </div>
        </div>
    </div>
    <div class="Department">
        <asp:Label ID="Label3" runat="server" Text="Department*" CssClass="col-lg-2 control-label" Font-Size="Larger"></asp:Label><br />
        <div class="col-lg-10">
            <asp:DropDownList ID="DropDownList1" runat="server" CssClass="form-control ddl">
                <asp:ListItem>Select your department</asp:ListItem>
                <asp:ListItem>Administration</asp:ListItem>
                <asp:ListItem>IT Solutions</asp:ListItem>
                <asp:ListItem>B.Tech(CSE)</asp:ListItem>
                <asp:ListItem>MCA</asp:ListItem>
                <asp:ListItem>iMBA</asp:ListItem>
                <asp:ListItem>English</asp:ListItem>
                <asp:ListItem>Library</asp:ListItem>
                <asp:ListItem>Others</asp:ListItem>
            </asp:DropDownList>
        </div>
    </div>
    <br />
    <div class="Designation">
        <asp:Label ID="Label4" runat="server" Text="Designation*" CssClass="col-lg-2 control-label" Font-Size="Larger"></asp:Label>
        <div class="col-lg-10">
            <asp:TextBox ID="TextBox2" runat="server" CssClass="form-control"></asp:TextBox>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="TextBox2" ErrorMessage="Designation is Requried" Style="color: #58CB00"> </asp:RequiredFieldValidator>
        </div>
    </div>
    <div class="Course">
        <asp:Label ID="Label5" runat="server" Text="Course*" CssClass="col-lg-2 control-label" Font-Size="Larger"></asp:Label>
        <div class="col-lg-10">
            <asp:DropDownList ID="DropDownList2" runat="server" CssClass="form-control ddl">
                <asp:ListItem>B.Tech(CSE)</asp:ListItem>
                <asp:ListItem>MCA</asp:ListItem>
                <asp:ListItem>iMBA</asp:ListItem>
                <asp:ListItem>English</asp:ListItem>
            </asp:DropDownList>
        </div>
    </div>
    <br />
    <div class="Semester">
        <asp:Label ID="Label6" runat="server" Text="Semester*" CssClass="col-lg-2 control-label" Font-Size="Larger"></asp:Label>
        <div class="col-lg-10">
            <asp:DropDownList ID="DropDownList3" runat="server" CssClass="form-control ddl">
                <asp:ListItem>I</asp:ListItem>
                <asp:ListItem>II</asp:ListItem>
                <asp:ListItem>III</asp:ListItem>
                <asp:ListItem>IV</asp:ListItem>
                <asp:ListItem>V</asp:ListItem>
                <asp:ListItem>VI</asp:ListItem>
                <asp:ListItem>VII</asp:ListItem>
                <asp:ListItem>VIII</asp:ListItem>
                <asp:ListItem>IX</asp:ListItem>
                <asp:ListItem>X</asp:ListItem>
            </asp:DropDownList>
        </div>
    </div>

你可以很容易地用jQuery这样做:-

$(document).ready(function () {
     $('input[name="category"]').change(function () {
         if ($.trim($(this).val()) == "student") {
               $('.Department,.Designation').hide();
               $('.Designation,.Course').show();
          }
          else {
               $('.Department,.Designation').show();
               $('.Designation,.Course').hide();
          }
      });
});

需要导入jQuery library

使用category_SelectedIndexChanged我们可以实现它

.Aspx Code

<div class="col-lg-10">
        <div class="radio">
            <label>
                <asp:RadioButtonList ID="category" runat="server" AutoPostBack="true" OnSelectedIndexChanged="category_SelectedIndexChanged">
                    <asp:ListItem Text="Student" Value="student"></asp:ListItem>
                    <asp:ListItem Text="Staff" Value="staff"></asp:ListItem>
                </asp:RadioButtonList>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator21" runat="server" ControlToValidate="category" ErrorMessage="Category is Requried" Style="color: #58CB00"></asp:RequiredFieldValidator>
            </label>
        </div>
    </div>

<div class="Department" id="department" runat="server" >
    <asp:Label ID="Label3" runat="server" Text="Department*" CssClass="col-lg-2 control-label" Font-Size="Larger"></asp:Label><br />
    <div class="col-lg-10">
        <asp:DropDownList ID="DropDownList1" runat="server" CssClass="form-control ddl">
            <asp:ListItem>Select your department</asp:ListItem>
            <asp:ListItem>Administration</asp:ListItem>
            <asp:ListItem>IT Solutions</asp:ListItem>
            <asp:ListItem>B.Tech(CSE)</asp:ListItem>
            <asp:ListItem>MCA</asp:ListItem>
            <asp:ListItem>iMBA</asp:ListItem>
            <asp:ListItem>English</asp:ListItem>
            <asp:ListItem>Library</asp:ListItem>
            <asp:ListItem>Others</asp:ListItem>
        </asp:DropDownList>
    </div>
</div>
<br />
<div class="Designation" id="desig" runat="server">
    <asp:Label ID="Label4" runat="server" Text="Designation*" CssClass="col-lg-2 control-label" Font-Size="Larger"></asp:Label>
    <div class="col-lg-10">
        <asp:TextBox ID="TextBox2" runat="server" CssClass="form-control"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="TextBox2" ErrorMessage="Designation is Requried" Style="color: #58CB00"> </asp:RequiredFieldValidator>
    </div>
</div>
<div class="Course" id="cour" runat="server">
    <asp:Label ID="Label5" runat="server" Text="Course*" CssClass="col-lg-2 control-label" Font-Size="Larger"></asp:Label>
    <div class="col-lg-10">
        <asp:DropDownList ID="DropDownList2" runat="server" CssClass="form-control ddl">
            <asp:ListItem>B.Tech(CSE)</asp:ListItem>
            <asp:ListItem>MCA</asp:ListItem>
            <asp:ListItem>iMBA</asp:ListItem>
            <asp:ListItem>English</asp:ListItem>
        </asp:DropDownList>
    </div>
</div>
<br />
<div class="Semester" id="sem" runat="server">
    <asp:Label ID="Label6" runat="server" Text="Semester*" CssClass="col-lg-2 control-label" Font-Size="Larger"></asp:Label>
    <div class="col-lg-10">
        <asp:DropDownList ID="DropDownList3" runat="server" CssClass="form-control ddl">
            <asp:ListItem>I</asp:ListItem>
            <asp:ListItem>II</asp:ListItem>
            <asp:ListItem>III</asp:ListItem>
            <asp:ListItem>IV</asp:ListItem>
            <asp:ListItem>V</asp:ListItem>
            <asp:ListItem>VI</asp:ListItem>
            <asp:ListItem>VII</asp:ListItem>
            <asp:ListItem>VIII</asp:ListItem>
            <asp:ListItem>IX</asp:ListItem>
            <asp:ListItem>X</asp:ListItem>
        </asp:DropDownList>
    </div>
</div>

.CS code

protected void category_SelectedIndexChanged(object sender, EventArgs e)
    {
        if(category.SelectedValue =="student")
        {
            cour.Visible = true;
            sem.Visible = true;
            department.Visible = false;
            desig.Visible = false;
        }
        else
        {
            cour.Visible = false;
            sem.Visible = false;
            department.Visible = true;
            desig.Visible = true;
        }
    }