在ASP.Net中,同一组中的单选按钮会自动更改为选中状态吗

本文关键字:状态 单选按钮 一组 Net ASP | 更新日期: 2023-09-27 18:20:51

页面上的同一组中有两个单选按钮:

<asp:RadioButton ID="RadioButton1" runat="server" GroupName="Group1"/>
<asp:RadioButton ID="RadioButton2" runat="server" GroupName="Group1"/>

在后面的代码中,我编写了检查两个单选按钮的代码:

RadioButton1.Checked = true;
RadioButton2.Checked = true;

我以为RadioButton1.Checked会是false,因为它们在同一组中,当我选中第二个时,第一个会自动取消选中。但实际上,它们都是Checked=true

在我的应用程序中,有一个像这样的切换案例:

// Some code to check the default RadioButton
switch(val){
  case 1:
    RadioButton1.Checked = true;
  case 2:
    RadioButton2.Checked = true;
}

所以有时候两个单选按钮的Checked都是真的。这很奇怪,所以我把代码改为:

switch(val){
  case 1:
    RadioButton1.Checked = true;
    RadioButton2.Checked = false;
  case 2:
    RadioButton1.Checked = false;
    RadioButton2.Checked = true;
}

这很好,但如果我需要再添加10个单选按钮,写一长串=true,=false……呢。。。。。?

有什么想法吗?谢谢

在ASP.Net中,同一组中的单选按钮会自动更改为选中状态吗

与其使用switch语句,不如使用:

RadioButton1.Checked = (val == 1);
RadioButton2.Checked = (val == 2);
RadioButton3.Checked = (val == 3);
// and so on ...
RadioButton10.Checked = (val == 10);

通过这种方式,所有内容都被设置为false,除了RadioButton等于val。如果您有大量的RadioButton控件,也许您希望将它们放在一个数组中并循环使用。

将groupname属性分配给两个单选按钮控件。单选按钮需要具有相同的组名属性,否则它们的行为将与复选框相同。