首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

Flex Tree 增删节查

2013-08-04 
Flex Tree 增删改查?xml version1.0 encodingutf-8?s:Application xmlns:fxhttp://ns.adobe.co

Flex 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" ><fx:Script><![CDATA[import mx.collections.XMLListCollection;import mx.controls.Alert;[Bindable][Embed(source="images/open.png")]public var folderOpen:Class;[Bindable][Embed(source="images/close.png")]public var folderClose:Class;[Bindable][Embed(source="images/file.png")]public var fileInfo:Class;[Bindable]private var company:XML=<department> <department name="部门A"><department name="小A" /><department name="小B" /></department><department name="部门B"><department name="小C"><department name="abc"><department name="efg"/></department><department name="opqr"/><department name="小D"><department name="ff"/></department></department> </department></department>;[Bindable]private var companyData:XMLListCollection=new XMLListCollection(company.department);private function addNode():void{// 新建节点var newNode:XML=<employee/>;newNode.@name=empName.text;// 添加节点var xml:XML=XML(tree1.selectedItem);if (xml.length() > 0){xml[0].appendChild(newNode);tree1.expandChildrenOf(tree1.selectedItem,true);}}private function removeNode():void{if (tree1.selectedItem != null){var node:XML=XML(tree1.selectedItem);Alert.show("根节点不能删除!","[错误]");//if(tree.dataDescriptor.root){///Alert.show("根节点不能删除!","[错误]");//return;//}var nodeP:XML=node.parent();var childrenList:XMLListCollection=new XMLListCollection(XMLList(nodeP).children());var i:Number=childrenList.getItemIndex(node);childrenList.removeItemAt(i);if(childrenList.length == 0)tree1.selectedItem = nodeP;else{if(i == childrenList.length)i = i - 1;tree1.selectedItem = childrenList.getItemAt(i)}}else{Alert.show("请选中一个节点再进行删除!");}}/* * 根据节点名字模糊查询*/private function findNode(key:String):void {//descendants()返回除了根节点以外的所有节点,然后根据条件筛选符合条件的结果集var list:XMLList = company.descendants().(@name.indexOf(key) != -1);expandParents(list[0]);tree1.selectedItem = list[0];}/* * 展开*/private function expandParents(xmlNode:XML):void {while (xmlNode.parent() != null) { xmlNode = xmlNode.parent();tree1.expandItem(xmlNode,true, false);}}//展开所有private function expandAll():void {tree1.expandChildrenOf(tree1.dataProvider[0],true);}//收起所有private function closeAll():void {tree1.expandChildrenOf(tree1.dataProvider[0],false);}]]></fx:Script><s:layout><s:HorizontalLayout horizontalAlign="center" verticalAlign="middle"/></s:layout><s:Panel title="实现添加和删除节点" width="450" height="450" ><s:layout><s:HorizontalLayout/></s:layout><mx:Tree id="tree1" dataProvider="{company}" labelField="@name" height="300" showRoot="false" width="260" defaultLeafIcon="{fileInfo}" folderOpenIcon="{folderOpen}" folderClosedIcon="{folderClose}" /><mx:VBox><s:Button label="展开所有" click="expandAll()"/><s:Button label="关闭所有" click="closeAll()"/><mx:Button label="删除节点" click="removeNode();"/><mx:HBox><s:TextInput id="empName" width="60" click="{empName.text = ''}" prompt="新节点名" /><mx:Button label="添加节点" click="addNode();"/></mx:HBox><mx:HBox><s:TextInput id="keyName" width="60" prompt="关键字"/><mx:Button label="查找节点" click="findNode(keyName.text)"/></mx:HBox></mx:VBox></s:Panel></s:Application>

?

热点排行