在Flex中,如何取消选择单选按钮组中的所有单选按钮?

8
在Flex中,有时候当你需要清除一个表单时,你会碰到单选按钮组似乎不容易清除的问题:无论你如何努力,设置所有按钮的selected=false,设置group为null,两者都做,两次都做等等,你似乎总是会留下一个讨厌的小单选按钮,它还是被选中状态。怎么解决这个问题并将单选按钮组恢复到初始的未选状态?
7个回答

12

您需要将所有单选按钮分组为一个RadioButtonGroup,然后将组选择设置为null:

<mx:RadioButtonGroup id="myGroup" />

<mx:RadioButton label="One" groupName="myGroup" />
<mx:RadioButton label="Two" groupName="myGroup" />
<mx:RadioButton label="Three" groupName="myGroup" />

<mx:Button label="Clear" click="myGroup.selection = null;" />

1

是的,这在简单的测试应用程序中有效。在选中的单选按钮上设置selected=false也有效。但是我遇到了两种解决方案都不起作用的情况。非常抱歉我说得这么含糊。等我从假期回来,我会看看能否找到代码并制作一个演示。 - Daniel Brockman

0

这个不起作用吗?

      function clearRadioSelection(theGroup) {
        theGroup.selection.selected = false;
        theGroup.selectedRadio = undefined;
        theGroup.dispatchEvent({type:"change"});
  }

theGroup 是单选按钮组(而不是单个单选按钮)

来自:http://kb2.adobe.com/cps/000/c4e4be2f.html

抱歉,但那必须是旧代码。没有“selectedRadio”属性,事件也不能像那样分派。 - Daniel Brockman

0

0
我所知道的唯一解决方法是添加一个隐藏的虚拟单选按钮,选择它可以取消选择所有其他按钮。

0

我相信你正在使用RadiobuttonGroup并绑定特定组的所有单选按钮控件。

因此,简单的方法是:

private function radioGroupReset():void

{

radioGroup1.selection = null;

}

这应该可以工作!


0

显然,前面的答案应该以最简洁的方式帮助你解决问题,但如果你一直在苦苦思索,只需将所有单选按钮收集到一个组件中,然后在需要清除时重新绘制整个组件即可。问题解决了。

表单本来就很麻烦,没有必要让生活变得更加艰难。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接