宁波市网站集约化建设通知,wordpress 综合主题,企业课程培训,国外服务器租用价格1、在开发中我遇到一种需求#xff0c;就是我点击树的折叠图标一下向下打开#xff0c;当我单击该树的最后一个节点#xff08;点击的是节点#xff0c;不是展开图片#xff09;#xff0c;联动的打开另一颗树#xff0c;发现
树中selectitems和getparentitem是无法选中…1、在开发中我遇到一种需求就是我点击树的折叠图标一下向下打开当我单击该树的最后一个节点点击的是节点不是展开图片联动的打开另一颗树发现
树中selectitems和getparentitem是无法选中该树中为展示出来的节点因为该方式只适合人机操作的时候使用后期发现只能用代码的方式在每个节点中添加父节点的属性利用代码的方式打开 ?xml version1.0 encodingutf-8? s:Application xmlns:fxhttp://ns.adobe.com/mxml/2009 xmlns:slibrary://ns.adobe.com/flex/spark xmlns:mxlibrary://ns.adobe.com/flex/mx minWidth955 minHeight600 fx:Script ![CDATA[ import mx.collections.ArrayCollection; import mx.events.ListEvent; private var _templateItem : Object null; private var _flag : Boolean false; [Bindable] private var node : ArrayCollection new ArrayCollection([ {name: 张,age:12,misid:11,id:01,children:[ {name : 张三,age : 12 ,misid:123,id:1,parent:01,children: [ {name : 张三1,age : 12,id:11,misid:null,parent:1 }, {name : 张三2,age : 12,id:12,misid:121321,parent:1 }, {name : 张三3,age : 12,id:13,misid:null,parent:1 } ] }, {name : 张四,age : 12 ,misid:123,id:2,parent:01,children: [ {name : 张四a,age : 12 ,id:21,misid:121321,parent:2 }, {name : 张四d,age : 12 ,id:22,misid:null,parent:2}, {name : 张四f,age : 12 ,id:23,misid:null,parent:2}, {name : 张四g,age : 12 ,id:24,misid:121321,parent:2} ] } ]} ]); [Bindable] private var node1 : ArrayCollection new ArrayCollection([ {name: 李,age:12,misid:11,gisId:01,children:[ {name : 李三,age : 12 ,misid:123,gisId:1,children: [ {name : 李三1,age : 12,gisId:11,misid:null }, {name : 李三2,age : 12,gisId:12,misid:121321 }, {name : 李三3,age : 12,gisId:13,misid:null } ] }, {name : 李四,age : 12 ,misid:123,gisId:2,children: [ {name : 李四a,age : 12,gisId:21,misid:121321 }, {name : 李四d,age : 12,gisId:22 ,misid:null}, {name : 李四f,age : 12,gisId:23 ,misid:null}, {name : 李四g,age : 12,gisId:24,misid:121321} ] } ] } ]); /** * gisTree点击事件 */ private function tree_itemClick( event:Event):void { var obj :Object gisTree.selectedItem; gisTree.expandItem(obj,true); var gisId:String obj.id; var misRootNode:Object (misTree.dataProvider as ArrayCollection).getItemAt(0); if(misRootNode.gisIdgisId) { misTree.expandItem(misRootNode,true); } else { if(misRootNode.children!null) { openMisTree(misRootNode.children,gisId); } } } /** * 根据gis节点打开mis节点(从上级到下级打开) */ private function openMisTree(misNode:Object,gisId:String):void { for each(var node:Object in misNode) { if(node.gisIdgisId) { misTree.expandItem(node,true); } else { openMisTree(node.children,gisId); } } } /** * misTree点击事件 */ protected function misTreeItemClickHandler(event:ListEvent):void { var gisId :String 2;//目的打开张四 var gisTreeRootNode : Object (gisTree.dataProvider as ArrayCollection).getItemAt(0); if(gisTreeRootNode.idgisId) { misTree.expandItem(gisTreeRootNode,true); } else { if(gisTreeRootNode.children!nullgisTreeRootNode.children.length0) { openGisTreeItem(gisTreeRootNode.children,gisId); } } } private function openGisTreeItem(children:Object,gisId:String):void { for each(var node:Object in children) { if(node.idgisId) { var parents:Arraynew Array(); parents.push(node); getGisTreeParent(parents,node.parent); gisTree.openItemsparents; // gisTree.selectedItem node; // gisTree.expandItem(gisTree.getParentItem(node),true); // gisTree.expandItem(node,true); } else { openGisTreeItem(node.children,gisId); } } } private function getGisTreeParent(listParentNode:Array,parentId:String):void { for each(var nodeItem:Object in node) { if(nodeItem.idparentId) { listParentNode.push(nodeItem); getGisTreeParent(listParentNode,nodeItem.parent); } } } ]] /fx:Script fx:Declarations !-- 将非可视元素例如服务、值对象放在此处 -- /fx:Declarations mx:HBox width100% height100% horizontalAligncenter mx:Tree idgisTree labelFieldname dataProvider{node} width200 itemClicktree_itemClick(event)/ mx:Tree idmisTree labelFieldname dataProvider{node1} width200 itemClickmisTreeItemClickHandler(event)/ /mx:HBox /s:Application