4

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

<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

在我的应用程序中,有一个这样的 switch-case:

// 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 .....?

有任何想法吗?谢谢!

4

2 回答 2

7

而不是一个switch声明,你可能会更好:

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

这样,false RadioButton等于之外的所有内容都设置为val。如果您有大量控件,RadioButton也许您希望将它们放在一个数组中并循环遍历它。

于 2013-07-03T04:57:38.413 回答
1

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

于 2015-07-10T19:31:39.753 回答