Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash Flex ItemRenderer as复选框_Flash_Actionscript 3_Apache Flex_Flex3 - Fatal编程技术网

Flash Flex ItemRenderer as复选框

Flash Flex ItemRenderer as复选框,flash,actionscript-3,apache-flex,flex3,Flash,Actionscript 3,Apache Flex,Flex3,我在FlexDataGrid中有一个itemRenderer as复选框 现在,我想确保每次只选中一个复选框。如果用户选择了一个复选框,然后尝试选择另一个复选框,则应取消先前的选择 如何使用Flex 编辑: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeig

我在FlexDataGrid中有一个itemRenderer as复选框

现在,我想确保每次只选中一个复选框。如果用户选择了一个复选框,然后尝试选择另一个复选框,则应取消先前的选择

如何使用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>

尝试以下方法:

[Bindable]
protected var renderer:ClassFactory;

protected function initRenderer() {
   var group:RadioButtonGroup = new RadioButtonGroup();
   var renderer = new ClassFactory(RadioButton);
   renderer.properties = {group:group};
}
将列的itemRenderer属性绑定到渲染器

编辑:
这篇文章最初有另一个答案,解释说当用户期望单选按钮具有所需功能时,使用复选框并不是一个好主意。用户希望在看到复选框时可以选中多个复选框

我希望我的复选框像RadioButton一样工作。在哪里编写此代码?这里是什么
{group:group}
?使用RadioButton的图标样式使其看起来像一个复选框。或者编写您自己的复选框类。这将在每个呈现程序上设置group属性,因为它是RadioButtonGroup的“天生”。您不需要调用unSelect(),因为通过使用RadioButtonGroup,它将取消选择其他单选按钮。您可能需要重写RadioButton子类中的某些属性,以使选择反映在数据中(反之亦然),但这不是您要问的问题。复选框和单选按钮实际上应该只处理这个问题,但它们没有正确编写以实现IDropInListItemRenderer。