Group(GroupName)中的Radiobutton全部被检查

问题描述:

所以我有三个RadioButton,它们不在RadioButtonList中,因为我需要在它们每个旁边添加一些文本框。Group(GroupName)中的Radiobutton全部被检查

我已经添加了一个GroupName,并且在前端它们的行为如预期。只有一个出现在一次检查。

但是在代码中,如果我这样做:

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

我希望只有最后一次,RadioButton3,进行检查,因为它们都属于同一个组。不是这种情况。所有三个评估为真....这怎么可能?

我必须明确地将它们设置为false ...我错过了什么吗?

我认为这是正确的行为,虽然它不是你所期望的。

考虑一个RadioButton只是一个CheckBox与一些扩展功能自动给予独家检查功能。在后台它仍然是一个复选框。从MSDN见层次:

System.Object 
    System.Web.UI.Control 
     System.Web.UI.WebControls.WebControl 
      System.Web.UI.WebControls.CheckBox 
       System.Web.UI.WebControls.RadioButton 

输出与属性checked="checked"输出的type="radio"input所有项目。例如:

<input id="rad1" type="radio" name="Test" value="rad1" checked="checked" /><label for="rad1">1</label><br /> 
<input id="rad2" type="radio" name="Test" value="rad2" checked="checked" /><label for="rad2">2</label><br /> 
<input id="rad3" type="radio" name="Test" value="rad3" checked="checked" /><label for="rad3">3</label> 

Checked属性documenation:

经过(从复选框继承): 获取或设置指示 复选框控件是否是 检查的值。

所以Checked财产的行为就像CheckBox版本不包括寻找其他控件在同一组,并删除他们这是有道理的,因为它是一个单一的控制功能。

+0

非常感谢您的快速和准确的响应队友!这就解释了为什么它会以这种方式行事,但我很惊讶它不会在后端兑现GroupName,当它在前端执行时... 也许我使用了错误的属性......你认为我应该使用“检查”(考虑它的行为像复选框而不是单选按钮 - 即使根据文档)?我期待看到一个名为“Selected”的属性,但它不存在.... hmmm ..... – 2010-07-22 06:15:05

+1

@Ev是的,你应该使用checked属性,但是你可以很容易地编写一个函数来模仿服务器端行为在页面级别,然后只是自动将所有内容切换为false,然后设置您要检查的'RadioButton'。 – Kelsey 2010-07-22 07:09:10