2009-07-06 91 views
7

在Flex中,有时当您需要清除表单时,会遇到单选按钮组似乎无法清除的问题:尽可能地尝试,在所有按钮上设置selected = false,在该组上设置selection = null,同时执行,做了两次,等等,你总是会看到一个仍然被选中的令人讨厌的小单选按钮。你如何解决这个问题,并将单选按钮组恢复到其初始非选择状态?在Flex中,我如何取消选择组中的所有单选按钮?

回答

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;" /> 
0

解决这个问题的唯一方法就是添加一个隐藏的虚拟单选按钮,以便取消选择所有其他按钮。

0

这不行吗?

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

theGroup是单选按钮组(而不是单个单选按钮) 来自:http://kb2.adobe.com/cps/000/c4e4be2f.html

+0

对不起,但那必须是旧代码。没有“selectedRadio”属性,事件不能像这样分派。 – 2009-07-06 16:04:03

1

你可以尝试所有的单选按钮设置为RadioButtonGroup然后设置RadioButtonGroup.selection为null

请参阅http://livedocs.adobe.com/flex/3/langref/mx/controls/RadioButtonGroup.html#includeExamplesSummary以了解如何实施RadioButtonGroup控件。

+0

是的,这适用于简单的测试应用程序。它也可以在所选的单选按钮上设置selected = false。但是我遇到了这两种解决方案都不起作用的情况。 我很抱歉如此模糊。当我从假期回来时,我会看看是否可以挖掘代码并制作演示。 – 2009-07-06 16:10:16

0

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

所以,简单的方法:

私有函数radioGroupReset():无效

{

radioGroup1.selection = NULL;

}

这应该工作!

0

显然,以前的答案应该把你带到你在最干净的方式走,但如果您将头靠在墙上,只需将所有单选按钮收集到组件中,然后在需要清除组件时重新绘制整个组件。问题解决了。

无论如何,表格最好不过了。没有必要让生活太难。

相关问题