有人可以帮助我们在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.
答案 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