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

时间:2013-07-03 04:54:21

标签: c# asp.net radio-button

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

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

在behined代码中,我编写代码来检查两个单选按钮:

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

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分: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 。如果你有一个巨大的量的{{1}}控件,也许你想把它们放在一个数组中并循环遍历它。

答案 1 :(得分:1)

将groupname属性分配给radiobuttons控件。 单选按钮需要具有相同的组名属性,否则它们就像复选框一样。