如何根据选择单选按钮列表中的项时显示按钮

How to show a button based off when an item in a radio button list is selected

提问人:John Eatman 提问时间:10/20/2023 最后编辑:Professor AbronsiusJohn Eatman 更新时间:10/22/2023 访问量:45

问:

我尝试了多种方法来显示按钮,但没有任何效果。

这是我在 c# 代码中的内容:

protected void rblistcourses_OnSelectedIndexChanged(object sender, EventArgs e)
    {
        btnremoveselectedcourse.Visible = true;

    }

这是 HTMl aspx 部分

<asp:Button ID="btnremoveselectedcourse" runat="server"
     OnClick="btnremoveselectedcourse_Click" Text="Remove selected"
     OnSelectedIndexChanged="rblistcourses_OnSelectedIndexChanged" 
     AutoPostBack="true" ViewStateMode="Enabled" />
C# HTML asp.net

评论

0赞 Albert D. Kallal 10/21/2023
显示单选按钮列表的标记。它可能需要一个 autopostback=true

答:

0赞 Ninotter 10/20/2023 #1

我不熟悉 asp.net,但查看您的代码,似乎该事件应该分配给您的 or ,而不是您的 .rblistcourses_OnSelectedIndexChangedRadioButtonRadioButtonListbtnremoveselectedcourse

事件将更改,但另一个组件必须调用它,否则它永远不会发生。btnremoveselectedcourserblistcourses_OnSelectedIndexChanged

0赞 Albert D. Kallal 10/22/2023 #2

这是一个很好的问题,可以通过使用客户端代码(JavaScript)来解决。

但是,就目前而言,鉴于已发布服务器端代码,则以下服务器端代码将起作用:

    protected void RBList1_SelectedIndexChanged(object sender, EventArgs e)
    {

        Button1.Visible = !(RBList1.SelectedIndex == 0);  
        Button2.Visible = !(RBList1.SelectedIndex == 1);  
        Button3.Visible = !(RBList1.SelectedIndex == 2);  

    }

结果是这样的:

enter image description here

和标记:

    <asp:RadioButtonList ID="RBList1" runat="server" 
        RepeatDirection="Horizontal"
        CssClass="rMyChoice"
        AutoPostBack="true"
        OnSelectedIndexChanged="RBList1_SelectedIndexChanged"
    >
        <asp:ListItem>Hide Button One</asp:ListItem>
        <asp:ListItem>Hide Button Two</asp:ListItem>
        <asp:ListItem>Hide Button Three</asp:ListItem>

    </asp:RadioButtonList>
    <br />
    <br />
    <br />
    <div style="float:left;width:200px">
        &nbsp;
        <asp:Button ID="Button1" runat="server" 
            Text="Button 1"
            CssClass="btn"
            />
    </div>

    <div style="float:left;width:200px">
        &nbsp;
        <asp:Button ID="Button2" runat="server" 
            Text="Button 2"
            CssClass="btn"
            />
    </div>

    <div style="float:left;width:200px">
        &nbsp;
        <asp:Button ID="Button3" runat="server" 
            Text="Button 3"
            CssClass="btn"
            />
    </div>