flex表格树列为控件元素示例
<mx:AdvancedDataGrid id="ad" creationComplete="create();"> <mx:columns> <mx:AdvancedDataGridColumn dataField="text"/> <mx:AdvancedDataGridColumn> <mx:itemRenderer> <mx:Component> <mx:Button label="{data.buttonLabel}" click="{outerDocument.onClick(data)}"/> </mx:Component> </mx:itemRenderer> </mx:AdvancedDataGridColumn> </mx:columns> </mx:AdvancedDataGrid>
public function create():void { var array:Array = [{text:"Text1", buttonLabel:"Bt1"}, {text:"Text2", buttonLabel:"Bt2"}] ad.dataProvider = new ArrayCollection(array); } public function onClick(item:Object):void { trace(item.text); }
完整示例:
<?xml version="1.0"?> <!-- dpcontrols/adg/SimpleHierarchicalADG.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()"> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.controls.Alert; [Bindable] private var dpHierarchy:ArrayCollection=new ArrayCollection([{Region: "Southwest", Territory_Rep: "Barbara Jennings", Actual: 38865, Estimate: 40000, children: [{Region: "Arizona", Territory_Rep: "Barbara Jennings", Actual: 38865, Estimate: 40000, children: [{Region: "node1", Territory_Rep: "Barbara Jennings", Actual: 38865, Estimate: 40000}, {Region: "node2", Territory_Rep: "Dana Binn", Actual: 29885, Estimate: 30000}]}, {Region: "Central California", Territory_Rep: "Barbara Jennings", Actual: 38865, Estimate: 40000, children: [{Region: "node3", Territory_Rep: "Joe Smith", Actual: 29134, Estimate: 30000}]}, {Region: "node4", Territory_Rep: "Barbara Jennings", Actual: 38865, Estimate: 40000, Region: "Nevada", children: [{Region: "node5", Territory_Rep: "Bethany Pittman", Actual: 52888, Estimate: 45000}]}, {Region: "Northern California", Territory_Rep: "Barbara Jennings", Actual: 38865, Estimate: 40000, children: [{Region: "node6", Territory_Rep: "Lauren Ipsum", Actual: 38805, Estimate: 40000}, {Region: "node7", Territory_Rep: "T.R. Smith", Actual: 55498, Estimate: 40000}]}, {Region: "Southern California", Territory_Rep: "Barbara Jennings", Actual: 38865, Estimate: 40000, children: [{Region: "node8", Territory_Rep: "Alice Treu", Actual: 44985, Estimate: 45000}, {Region: "node9", Territory_Rep: "Jane Grove", Actual: 44913, Estimate: 45000}]}]}]); public function onClick(item:Object):void { Alert.show("你确定要退出系统吗?", "确认", Alert.YES | Alert.NO, null, null) } //初始化程序 private function initApp():void { ExternalInterface.addCallback("dataSourceFunc", dataSourceChange); ExternalInterface.call(Application.application.parameters.funcName); } // public function dataSourceChange():void { } ]]> </mx:Script> <mx:AdvancedDataGrid id="advanceDataGrid" width="100%" height="100%"> <mx:dataProvider> <mx:HierarchicalData source="{dpHierarchy}"/> </mx:dataProvider> <mx:columns> <mx:AdvancedDataGridColumn dataField="Region"/> <mx:AdvancedDataGridColumn dataField="Territory_Rep" headerText="Territory Rep Title"/> <mx:AdvancedDataGridColumn dataField="Actual"/> <mx:AdvancedDataGridColumn dataField="Estimate"/> <mx:AdvancedDataGridColumn> <mx:itemRenderer> <mx:Component> <mx:Button label="QueryDownload" width="50%" height="50%" click="{outerDocument.onClick(data)}"/> </mx:Component> </mx:itemRenderer> </mx:AdvancedDataGridColumn> </mx:columns> </mx:AdvancedDataGrid> </mx:Application>