1

您好,有人可以帮助在 Flex MX Datagrid 中循环单选按钮项渲染器吗?

我的数据网格代码如下:

<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.
4

1 回答 1

0

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

<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 绑定细微差别:关于绑定

于 2012-07-06T19:58:36.460 回答