如何在Flex中的数据网格中循环使用单选按钮的项目渲染器

时间:2012-05-16 14:20:52

标签: datagrid flex4 radio-button

有人可以帮助我们在Flex MX Datagrid中循环使用radiobuttons项目渲染器吗?

我的数据网格代码如下:

<mx:DataGridColumn width="20" headerText="isDefault" dataField="IS_DEFAULT">
                            <mx:itemRenderer>
                                <fx:Component>
                                    <mx:HBox horizontalAlign="left">
                                        <fx:Script>
                                            <![CDATA[
                                                import mx.controls.Alert;
                                                import mx.controls.listClasses.ListData;


                                                protected function chk1_changeHandler(event:Event):void
                                                {

                                                } 

                                            ]]>
                                        </fx:Script>
                                        <mx:RadioButton id="chk1" selected="{data.IS_DEFAULT == 'N' ? false : true}"
                                                        groupName="{outerDocument.rbg11}" change="chk1_changeHandler(event)" horizontalCenter="0"/>
                                            </mx:HBox>
                                </fx:Component>
                            </mx:itemRenderer>
                        </mx:DataGridColumn>



Thanks for helping.

1 个答案:

答案 0 :(得分:0)

为什么不将复选框项内联渲染器的状态与数据网格的dataprovider绑定?是否有其他类型的功能,您通过每个复选框控件专门尝试访问?如果没有,我建议只添加一个选定/未选择的属性到你的数据提供者是什么,并将其绑定到内联复选框渲染器的“selected”属性,如下所示:

<mx:RadioButton id="chk1" selected="{data.selected_property}"
                                    groupName="{outerDocument.rbg11}" change="chk1_changeHandler(event)" horizontalCenter="0"/>

这样,如果您想要循环遍历datagrid控件中每个复选框的“状态”,您可以在数据提供程序级别执行此操作。你的chk1_changeHandler()只会切换选中/未选中的值:

protected function chk1_changeHandler(event:Event):void{
    if(data.selected_property == true){
        data.selected_property = false;
    }else{
        data.selected_property = true;
    }
}

如果你在mx(~3.x)而不是4.6上设置了死的话,我会在这里阅读一些微妙的flex 3绑定细微差别:About Binding