正文

Flex4 DataGrid中嵌入RadioButton实现思路及代码

文章摘要

本文主要介绍了如何通过Flex中的GridItemRenderer实现对行选择功能的实现。在prepare方法中,通过获取grid.dataGrid.selectedItems对象,判断当前行是否被选中,并相应地设置radio_button的selected属性为true或false。需要注意的是,radio_button被禁用,因此用户无法通过点击来选择或取消选择行,此功能只能通过代码实现。

 <?xml version=”1.0″ encoding=”utf-8″?> <s:GridItemRenderer xmlns:fx=”http://ns.adobe.com/mxml/2009″ xmlns:s=”library://ns.adobe.com/flex/spark” xmlns:mx=”library://ns.adobe.com/flex/mx”> <fx:Declarations> <!– 将非可视元素(例如服务、值对象)放在此处 –> </fx:Declarations> <fx:Script> <![CDATA[ //———————————————————————————————————- override public function prepare(hasBeenRecycled:Boolean):void { super.prepare( hasBeenRecycled ); // We make the radio button mimic the selection status of the whole row. const selected_items: Vector.<Object>=grid.dataGrid.selectedItems; if( null==selected_items ) { radio_button.selected=false; return; } if( -1 !=selected_items.indexOf( data ) ) radio_button.selected=true; else radio_button.selected=false; } //———————————————————————————————————- ]]> </fx:Script> <!–The radio button is only a visual indicator for whether the row is selected or not. The “selected” property of the radio_button will be controlled by the “prepare” function. The radio_button should not be allowed any user interaction. Hence disabling it.–> <s:RadioButton id=”radio_button” label=”” enabled=”false” horizontalCenter=”0″ verticalCenter=”0″ /> </s:GridItemRenderer>