Flex Tree 如何在不选定节点的情况下进行添加(Demo)
2013-05-24 01:20
417 查看
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="800" height="500" creationComplete="init()" xmlns:ns1="aaa.*"> <mx:Script> <![CDATA[ import mx.events.TreeEvent; import mx.collections.ArrayCollection; private function handleItemClose(evt:TreeEvent):void { tree1.expandChildrenOf(evt.item, false); } private function init():void { this.tree1.addEventListener(TreeEvent.ITEM_CLOSE, handleItemClose); } private function getAllChildLabel():void { if(tree1.selectedItem) { var allChild:Array = []; var xml:XML = tree1.selectedItem as XML; this.getAllChild(allChild, xml); this.textArea1.text = allChild.join("\n"); } } private function getAllChild(allChild:Array, xml:XML):void { allChild.push(xml.@label); if(xml.children().length()>0) { for each(var node:XML in xml.children()) arguments.callee(allChild,node); } } private function getAllParentLabel():void { if(tree1.selectedItem) { var allParent:Array = []; var xml:XML = tree1.selectedItem as XML; this.getAllParent(allParent, xml); this.textArea1.text = allParent.join("\n"); } } private function getAllParent(allParent:Array, xml:XML):void { allParent.push(xml.@label); if(xml.parent()) { arguments.callee(allParent, xml.parent()); } } private function getTreeLabel():void { if(tree1.selectedIndex = 1) { var s:XML = tree1.selectedItem as XML; var newNode:XML =<Pfolder/>; newNode.@label="自定义333333"; // 添加节点 if (s.length() > 0) { s[0].appendChild(newNode); } } } ]]> </mx:Script> <mx:Tree id="tree1" labelField="@label" showRoot="true" width="300" height="300"> <mx:XMLListCollection id="MailBox"> <mx:XMLList> <folder label="Mail"> <folder label="INBOX"/> <folder label="Personal Folder"> <Pfolder label="Business" /> <Pfolder label="Demo" /> <Pfolder label="Personal" isBranch="true" /> <Pfolder label="Saved Mail" /> </folder> <folder label="Sent" /> <folder label="Trash" /> </folder> <folder label="自定义视图"> <folder label="自定义视图"> <Pfolder label="节点1" /> <Pfolder label="节点2" /> </folder> </folder> </mx:XMLList> </mx:XMLListCollection> </mx:Tree> <mx:Button id="button1" x="201" y="308" label="得到选择节点下的所有子节点label值" click="getAllChildLabel()" /> <mx:Button id="button2" x="201" y="338" label="得到选择节点的所有父节点label值" click="getAllParentLabel()" /> <mx:Button id="button3" x="201" y="368" label="得到树所有及诶单label值" click="getTreeLabel()" /> <mx:TextArea id="textArea1" x="317" y="2" width="276" height="298"/> </mx:Application>
相关文章推荐
- Flex 给Tree的每个节点添加自定义图标
- Flex中如何利用defaultLeafIcon样式,去掉Tree叶子节点图标
- Flex中如何利用defaultLeafIcon样式去掉Tree叶子节点图标的例子
- Flex中如何通过给openItems属性设置一个XMLList或Array对象来打开Tree的一个节点的例子
- Flex使用<mx:Tree>控件创建树(可添加和删除节点)
- Flex中如何去掉Tree控件默认文件夹图标、叶子节点图标
- Flex中如何去掉Tree控件默认文件夹图标、叶子节点图标
- Flex中如何通过dragEnabled, dropEnabled和dragMoveEnabled属性,使Tree中的节点可以被拖动重新排序
- Flex使用<mx:Tree>控件创建树(可添加和删除节点)
- Flex中如何通过给openItems属性设置一个XMLList或Array对象来打开Tree的一个节点的例子
- Flex中如何利用isBranch()事件,检测Tree的节点是支节点还是叶子节点
- Flex使用<mx:Tree>控件创建树(可添加和删除节点)
- Flex的树形控件(Tree Control)中如何通过点击行进行展开/缩进的例子
- Flex中如何利用openItems属性,检测当前Tree的哪一个节点被展开
- Flex中如何利用expandItem()和expandChildrenOf()展开,或关闭Tree的各层节点
- Flex中如何利用dataDescriptor和labelFunction属性以及hasChildren()和getChildren()函数设置Tree中包含子节点个数的例子
- Flex使用<mx:Tree>控件创建树(可添加和删除节点)
- Flex中如何利用dataDescriptor和labelFunction属性,以及hasChildren()和getChildren()函数设置Tree中包含子节点个数
- Flex的树形控件(Tree Control)中如何通过点击行进行展开/缩进的例子
- Flex中如何通过给openItems属性,设置一个XMLList或Array对象来打开Tree的一个节点