flex从数据库取数据动态生成tree
发布时间:2020-12-15 04:44:14 所属栏目:百科 来源:网络整理
导读:1.新建一个Node类: package{import mx.collections.ArrayCollection;public class Node{//节点类型public var type:String; public var id:Stringpublic var name:String;public var children:ArrayCollection;public var parentId:String;public function
1.新建一个Node类: package { import mx.collections.ArrayCollection; public class Node { //节点类型 public var type:String; public var id:String public var name:String; public var children:ArrayCollection; public var parentId:String; public function Node() { } } } 2.创建Tree: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()" > <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <s:RemoteObject id="entitiesManager" destination="entitiesManager" endpoint="http://localhost:8080/csMap/messagebroker/amf"> </s:RemoteObject> </fx:Declarations> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.rpc.events.ResultEvent; //定义不同节点的对象Node集合 private var csNodes:ArrayCollection = new ArrayCollection(); private var cpNodes:ArrayCollection = new ArrayCollection(); private var apNodes:ArrayCollection = new ArrayCollection(); private var edNodes:ArrayCollection = new ArrayCollection(); //定义不同节点的数据集集合 [Bindable] private var dp_cs:ArrayCollection = new ArrayCollection(); [Bindable] private var dp_cp:ArrayCollection = new ArrayCollection(); [Bindable] private var dp_ap:ArrayCollection = new ArrayCollection(); [Bindable] private var dp_ed:ArrayCollection = new ArrayCollection(); //初始化地图 private function init():void { init_cs(); } //创建Tree private function createTreeNode():void { for(var ied:int=0;ied<dp_ed.length;ied++) { var ednode:Node = new Node(); ednode.id = dp_ed.getItemAt(ied).id; ednode.name= dp_ed.getItemAt(ied).name; ednode.parentId = dp_ed.getItemAt(ied).apid; ednode.children = null; edNodes.addItem(ednode); } for(var iap:int=0;iap<dp_ap.length;iap++) { var apnode:Node = new Node(); apnode.id = dp_ap.getItemAt(iap).id; apnode.name= dp_ap.getItemAt(iap).name; apnode.parentId = dp_ap.getItemAt(iap).cpid; apnode.children = new ArrayCollection(); for(var ied1:int=0;ied1<edNodes.length;ied1++) { var ednode1:Node =Node(edNodes.getItemAt(ied1)); if(ednode1.parentId==apnode.id) { apnode.children.addItem(ednode1); } } apNodes.addItem(apnode); } for(var icp:int=0;icp<dp_cp.length;icp++) { var cpnode:Node = new Node(); cpnode.id = dp_cp.getItemAt(icp).id; cpnode.name= dp_cp.getItemAt(icp).name; cpnode.parentId = dp_cp.getItemAt(icp).csid; cpnode.children = new ArrayCollection(); for(var iap1:int=0;iap1<apNodes.length;iap1++) { var apnode1:Node =Node(apNodes.getItemAt(iap1)); if(apnode1.parentId==cpnode.id) { cpnode.children.addItem(apnode1); } } cpNodes.addItem(cpnode); } for(var i:int=0;i<dp_cs.length;i++) { var csnode:Node = new Node(); csnode.id = dp_cs.getItemAt(i).id; csnode.name= dp_cs.getItemAt(i).name; csnode.children = new ArrayCollection(); for(var icp1:int=0;icp1<cpNodes.length;icp1++) { var cpnode1:Node =Node(cpNodes.getItemAt(icp1)); if(cpnode1.parentId==csnode.id) { csnode.children.addItem(cpnode1); } } csNodes.addItem(csnode); } csTree.dataProvider = csNodes; csTree.labelField = "name"; } //初始化cs private function init_cs():void { this.entitiesManager.addEventListener(ResultEvent.RESULT,init_cs_s); this.entitiesManager.getCsList(); } private function init_cs_s(event:ResultEvent):void { this.entitiesManager.removeEventListener(ResultEvent.RESULT,init_cs_s); this.dp_cs = ArrayCollection(event.result); init_cp(); } //初始化cp private function init_cp():void { this.entitiesManager.addEventListener(ResultEvent.RESULT,init_cp_s); this.entitiesManager.getCpList(); } private function init_cp_s(event:ResultEvent):void { this.entitiesManager.removeEventListener(ResultEvent.RESULT,init_cp_s); this.dp_cp = ArrayCollection(event.result); init_ap(); } //初始化ap private function init_ap():void { this.entitiesManager.addEventListener(ResultEvent.RESULT,init_ap_s); this.entitiesManager.getApList(); } private function init_ap_s(event:ResultEvent):void { this.entitiesManager.removeEventListener(ResultEvent.RESULT,init_ap_s); this.dp_ap = ArrayCollection(event.result); init_ed(); } //初始化ed private function init_ed():void { this.entitiesManager.addEventListener(ResultEvent.RESULT,init_ed_s); this.entitiesManager.getEdList(); } private function init_ed_s(event:ResultEvent):void { this.entitiesManager.removeEventListener(ResultEvent.RESULT,init_ed_s); this.dp_ed = ArrayCollection(event.result); createTreeNode(); } ]]> </fx:Script> <s:ComboBox x="39" y="41" id="cs" dataProvider="{dp_cs}" labelField="name"/> <s:ComboBox x="214" y="43" id="cp" dataProvider="{dp_cp}" labelField="name"/> <s:ComboBox x="405" y="43" id="ap" dataProvider="{dp_ap}" labelField="name"/> <s:ComboBox x="590" y="43" id="ed" dataProvider="{dp_ed}" labelField="name"/> <mx:Tree id="csTree" x="33" y="201" width="415" height="293"> </mx:Tree> </s:Application> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |