我在Flex itemRenderer中有一个CheckBox作为DataGrid。
现在,我希望确保每次只选中一个复选框,。如果用户选择是复选框,然后尝试选择另一个复选框,则应取消先前的选择。
在Flex里怎么做?
编辑:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.CheckBox;
import mx.controls.RadioButton;
import mx.controls.RadioButtonGroup;
[Bindable]
protected var renderer:ClassFactory;
protected function initRenderer() {
var group:RadioButtonGroup = new RadioButtonGroup();
var renderer = new ClassFactory(RadioButton);
renderer.properties = {group:group};
}
private var arrayC:ArrayCollection = new ArrayCollection
(
[
{fname:"Person1",isSelected:false},
{fname:"Person2",isSelected:false},
{fname:"Person3",isSelected:false}
]
);
// To be called when we uncheck checkbox ..
private function unSelect(event:MouseEvent):void {
}
]]>
</mx:Script>
<mx:DataGrid id="dg" x="400" y="400" dataProvider="{arrayC}">
<mx:columns>
<mx:DataGridColumn id="dgc1" itemRenderer="{renderer}"/>
<mx:DataGridColumn id="dgc2" dataField="fname"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>发布于 2011-12-01 12:44:42
试着做这样的事情:
[Bindable]
protected var renderer:ClassFactory;
protected function initRenderer() {
var group:RadioButtonGroup = new RadioButtonGroup();
var renderer = new ClassFactory(RadioButton);
renderer.properties = {group:group};
}将列的itemRenderer属性绑定到呈现器。
编辑:在这篇文章中,最初有另一个答案解释说,当用户期望使用单选按钮的功能时,使用复选框并不是一个好主意。用户希望当他们看到复选框时,他们可以检查多个复选框。http://www.useit.com/alertbox/20040927.html
https://stackoverflow.com/questions/8336391
复制相似问题