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

Eri*_*ric 4 c# asp.net radio-button

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

<asp:RadioButton ID="RadioButton1" runat="server" GroupName="Group1"/>
<asp:RadioButton ID="RadioButton2" runat="server" GroupName="Group1"/>
Run Code Online (Sandbox Code Playgroud)

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

RadioButton1.Checked = true;
RadioButton2.Checked = true;
Run Code Online (Sandbox Code Playgroud)

我认为这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;
}
Run Code Online (Sandbox Code Playgroud)

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

switch(val){
  case 1:
    RadioButton1.Checked = true;
    RadioButton2.Checked = false;
  case 2:
    RadioButton1.Checked = false;
    RadioButton2.Checked = true;
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果我需要添加10个单选按钮,写一个长列表= true,= false .....?

有任何想法吗?谢谢!

Mik*_*sen 7

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

RadioButton1.Checked = (val == 1);
RadioButton2.Checked = (val == 2);
RadioButton3.Checked = (val == 3);
// and so on ...
RadioButton10.Checked = (val == 10);
Run Code Online (Sandbox Code Playgroud)

这样一来,一切都被设置为false 除外RadioButton等于val.如果你有一个巨大的量RadioButton的控制,也许你会希望把它们通过一个数组和循环来代替.