Flex4 DataGrid中嵌入RadioButton实现思路及代码
<s:DataGridid="viewDg"width="100%"height="100%"fontFamily="微软雅黑" horizontalScrollPolicy="off"borderVisible="false" dataProvider="{viewList}"> <s:columns> <s:ArrayList> <s:GridColumnwidth="{wid*0.02}"resizable="false" itemRenderer="Module_SchoolView.RadioButtonGridItemRenderer"/> <s:GridColumnwidth="{wid*0.25}"headerText="名称"dataField="xysj02"resizable="false"/> <s:GridColumnwidth="{wid*0.25}"headerText="地名"dataField="xysj02name"resizable="false"/> <s:GridColumnwidth="{wid*0.35}"headerText="URL"dataField="xysj04"resizable="false"/> <s:GridColumnwidth="{wid*0.13}"headerText="备注"dataField="xysj05"resizable="false"/> </s:ArrayList> </s:columns> </s:DataGrid>
MXML页面
<?xmlversion="1.0"encoding="utf-8"?> <s:GridItemRendererxmlns: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[ //---------------------------------------------------------------------------------------------------------- overridepublicfunctionprepare(hasBeenRecycled:Boolean):void { super.prepare(hasBeenRecycled); //Wemaketheradiobuttonmimictheselectionstatusofthewholerow. constselected_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> <!--Theradiobuttonisonlyavisualindicatorforwhethertherowisselectedornot. The"selected"propertyoftheradio_buttonwillbecontrolledbythe"prepare"function. Theradio_buttonshouldnotbeallowedanyuserinteraction.Hencedisablingit.--> <s:RadioButtonid="radio_button" label="" enabled="false" horizontalCenter="0"verticalCenter="0"/> </s:GridItemRenderer>