<s:DataGrid id="viewDg" width="100%" height="100%" fontFamily="微软雅黑" horizontalScrollPolicy="off" borderVisible="false" dataProvider="{viewList}"> <s:columns> <s:ArrayList> <s:GridColumn width="{wid*0.02}" resizable="false" itemRenderer="Module_SchoolView.RadioButtonGridItemRenderer"/> <s:GridColumn width="{wid*0.25}" headerText="名称" dataField="xysj02" resizable="false"/> <s:GridColumn width="{wid*0.25}" headerText="地名" dataField="xysj02name" resizable="false"/> <s:GridColumn width="{wid*0.35}" headerText="URL" dataField="xysj04" resizable="false"/> <s:GridColumn width="{wid*0.13}" headerText="备注" dataField="xysj05" resizable="false"/> </s:ArrayList> </s:columns> </s:DataGrid>
MXML页面
<"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>