【发布时间】:2009-10-01 18:56:17
【问题描述】:
在 Flex 中,有时当您需要清除表单时,您会遇到单选按钮组似乎无法清除的问题:尽可能尝试,在所有按钮上设置 selected=false,在组上设置 selection=null,执行两者,做两次,等等,你似乎总是得到一个仍然被选中的讨厌的小单选按钮。您如何解决这个问题并将单选按钮组恢复到其初始的未选择状态?
【问题讨论】:
在 Flex 中,有时当您需要清除表单时,您会遇到单选按钮组似乎无法清除的问题:尽可能尝试,在所有按钮上设置 selected=false,在组上设置 selection=null,执行两者,做两次,等等,你似乎总是得到一个仍然被选中的讨厌的小单选按钮。您如何解决这个问题并将单选按钮组恢复到其初始的未选择状态?
【问题讨论】:
您需要将所有单选按钮分组为RadioButtonGroup,然后将组选择设置为空:
<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;" />
【讨论】:
您可以尝试将所有单选按钮设置为 RadioButtonGroup,然后将 RadioButtonGroup.selection 设置为 null
有关如何实现RadioButtonGroup 控件的参考,请参阅http://livedocs.adobe.com/flex/3/langref/mx/controls/RadioButtonGroup.html#includeExamplesSummary。
【讨论】:
据我所知,解决此问题的唯一方法是添加一个隐藏的虚拟单选按钮,您选择该按钮以取消选择所有其他按钮。
【讨论】:
这不行吗?
function clearRadioSelection(theGroup) {
theGroup.selection.selected = false;
theGroup.selectedRadio = undefined;
theGroup.dispatchEvent({type:"change"});
}
theGroup 是单选按钮组(不是单个单选按钮) 来自:http://kb2.adobe.com/cps/000/c4e4be2f.html
【讨论】:
我相信您正在使用 RadiobuttonGroup 并为特定组绑定所有单选按钮控件。
所以,简单的方法:
私有函数radioGroupReset():void
{
radioGroup1.selection = null;
}
这应该可行!
【讨论】:
显然,前面的答案应该让你以最干净的方式到达你要去的地方,但如果你把头撞到墙上,只需将所有单选按钮收集到一个组件中,然后在需要时重新绘制整个组件清除它。问题解决了。
无论如何,表单充其量是 gimpy。没有必要让生活变得太艰难。
【讨论】:
只需将 radioButtonGroup 的 selection 属性设置为 null,它就会进入初始状态。
例如,如果
<mx:RadioButtonGroup id="answers" />
然后在 ActionScript 中编写以下行
answers.selection = null;
将重置未选择左侧单选按钮的组。希望它可以帮助你。我从以下链接中获得了这个想法。祝你好运。
http://blog.flexexamples.com/2008/01/06/clearing-a-selected-radiobutton-control-in-flex/
【讨论】: