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>