加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 问题检查后面的代码中的单选按钮

发布时间:2020-12-16 04:10:20 所属栏目:asp.Net 来源:网络整理
导读:我有一个简单的ASP.NET表单,带有DropDownList和两个RadioButtons(两者都共享相同的GroupName). 在DropDownList的SelectedIndexChanged事件中,我在两个RadioButtons上设置Checked = true. 它设置第二个RadioButton很好,但它不会检查第一个.我究竟做错了什么?
我有一个简单的ASP.NET表单,带有DropDownList和两个RadioButtons(两者都共享相同的GroupName).

在DropDownList的SelectedIndexChanged事件中,我在两个RadioButtons上设置Checked = true.

它设置第二个RadioButton很好,但它不会检查第一个.我究竟做错了什么?

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication3._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
    <form id="form1" runat="server">
        <asp:DropDownList runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddl_Changed"
            ID="ddl">
            <asp:ListItem Text="Foo" />
            <asp:ListItem Text="Bar" />
        </asp:DropDownList>
        <asp:RadioButton runat="server" ID="rb1" Text="Foo" GroupName="foobar" />
        <asp:RadioButton runat="server" ID="rb2" Text="Bar" GroupName="foobar" />
    </form>
</body>
</html>

protected void ddl_Changed(object sender,EventArgs e)
{
    if (ddl.SelectedIndex == 0)
        rb1.Checked = true; // <- Doesn't actually work
    else
        rb2.Checked = true;
}

解决方法

它失败了,因为它试图将它们都设置为选中,这对于组中的无线电按钮是不可能的.

最好的解决方案是使用RadioButtonList:

<asp:RadioButtonList ID="rblTest" runat="server">
        <asp:ListItem Text="Foo"></asp:ListItem>
        <asp:ListItem Text="Bar"></asp:ListItem>
    </asp:RadioButtonList>

然后像这样设置所选项目:

protected void ddl_Changed(object sender,EventArgs e)
    {
        rblTest.ClearSelection();
        rblTest.SelectedIndex = ddl.SelectedIndex;
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读