Flex中Tree的用法备忘(增删改查节点)
生活随笔
收集整理的這篇文章主要介紹了
Flex中Tree的用法备忘(增删改查节点)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
<?xml version="1.0" encoding="utf-8" ?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="doInit()" fontSize="15">
<mx:HDividedBox right="5" left="5" bottom="5" top="114">
<mx:TextArea height="100%" width="100%" wordWrap="false" id="textarea">
<mx:text>
<![CDATA[
<node label="菜單"><node label="瑰姿艷逸"/><node label="氣若幽蘭"/><node label="華容婀娜"/><node label="翩若驚鴻"/><node label="其他"><node label="婉若游龍"/><node label="榮曜秋菊"/><node label="華茂春松"><node label="明眸善睞"/><node label="腰如約素"/><node label="瑰姿艷逸"/></node></node>
</node>]]> </mx:text></mx:TextArea><mx:Tree width="100%" height="100%" labelField="@label" id="tree" change="onChange()" allowMultipleSelection="true" /> </mx:HDividedBox><mx:Button x="10" y="10" label="設(shè)置Tree的Model" click="refresh1()" />
<mx:Script>
<![CDATA[ import mx.controls.Alert;import flash.utils.setTimeout;import mx.collections.*;private function onChange():void {if(tree.selectedItem!=null) {var xml:XML=tree.selectedItem as XML;addText.text=xml.@label;}}private function doInit():void {refresh1();}private function refresh1():void {var list:XMLList=null;try {list=new XMLList(textarea.text);} catch (e:Error) {Alert.show("xml模型非法");}if(list!=null) {tree.dataProvider=list;tree.validateNow();setTimeout(expandAll,100); } }private function expandAll():void {tree.selectedIndex=0;//trace(tree.selectedIndex);if(tree.selectedItem!=null) {//trace(tree.selectedItem);tree.expandChildrenOf(tree.selectedItem,true);}}private function addAfter():void {var xml:XML=tree.selectedItem as XML;var text:String=addText.text;if(xml!=null && text.length>0) {var parent:XML=xml.parent();if(parent!=null) {var child:XML=new XML("<node label=\"\"/>");child.@label=text;parent.insertChildAfter(xml,child);} else {Alert.show("不能選中根節(jié)點(diǎn)");}} else {Alert.show("需要先選中節(jié)點(diǎn)和填入文字");}}private function addBefore():void {var xml:XML=tree.selectedItem as XML;var text:String=addText.text;if(xml!=null && text.length>0) {var parent:XML=xml.parent();if(parent!=null) {var child:XML=new XML("<node label=\"\"/>");child.@label=text;parent.insertChildBefore(xml,child);} else {Alert.show("不能選中根節(jié)點(diǎn)");}} else {Alert.show("需要先選中節(jié)點(diǎn)和填入文字");} }private function addSub():void {var xml:XML=tree.selectedItem as XML;var text:String=addText.text;if(xml!=null && text.length>0) {var child:XML=new XML("<node label=\"\"/>");child.@label=text;xml.appendChild(child);tree.expandChildrenOf(xml,true);} else {Alert.show("需要先選中節(jié)點(diǎn)和填入文字");} }private function delSel():void {var xml:XML=tree.selectedItem as XML;if(xml!=null) {var list:Array=tree.selectedItems as Array;for(var k:int=0;k<list.length;k++) {xml=list[k] as XML;var parent:XML=xml.parent();if(parent!=null) {var children:XMLList=parent.children();for(var i:int=0;i<children.length();i++) {if(children[i]==xml) {delete children[i];break;}}} else {Alert.show("不能選中根節(jié)點(diǎn)");}}} else {Alert.show("需要先選中節(jié)點(diǎn)");} }private function modifyLabel():void {var xml:XML=tree.selectedItem as XML;var text:String=addText.text;if(xml!=null && text.length>0) {xml.@label=text;} else {Alert.show("需要先選中節(jié)點(diǎn)");} }private function selAll():void {var text:String=searchText.text;if(text.length>0) {var items:Array=[];var list:XMLList=new XMLList();list[0]=tree.dataProvider[0]; searchItems(list,text,items);tree.selectedItems=items;} else {Alert.show("輸入查找的文字");}}private function searchItems(list:XMLList,find:String,items:Array):void {for(var i:int=0;i<list.length();i++) {var one:XML=list[i];var label:String=one.@label;if(label!=null && label.indexOf(find)>=0) {items.push(one);}searchItems(one.children(),find,items);}}]]> </mx:Script><mx:Label x="10" y="46" text="增加節(jié)點(diǎn):" /> <mx:TextInput x="90" y="44" width="127" id="addText" /> <mx:Button x="225" y="44" label="增加為弟" click="addAfter()" /> <mx:Button x="323" y="44" label="增加為哥" click="addBefore()" /> <mx:Button x="421" y="44" label="增加為孩子" click="addSub()" /> <mx:Button x="193" y="10" label="刪除選中節(jié)點(diǎn)" click="delSel()" /> <mx:Button x="563" y="44" label="修改標(biāo)簽" click="modifyLabel()" /> <mx:TextInput x="124" y="76" width="127" id="searchText" text="華" /> <mx:Text x="259" y="78" text="的節(jié)點(diǎn)" /> <mx:Button x="10" y="76" label="選中包含:" click="selAll()" /> </mx:Application>
?
總結(jié)
以上是生活随笔為你收集整理的Flex中Tree的用法备忘(增删改查节点)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 崩坏3服务器维护什么时候维护好,崩坏3
- 下一篇: C# .NET Core获取类属性/属性