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

Flex兑现树形列表的过滤

2012-08-24 
Flex实现树形列表的过滤Flex实现树形列表的过滤项目中用flex实现了一个设备列表,这个设备列表时树形结构的

Flex实现树形列表的过滤
Flex实现树形列表的过滤

项目中用flex实现了一个设备列表,这个设备列表时树形结构的,当用户在输入关键字后,需要按照关键字过滤出符合条件的内容,用flex内部的过滤机制已经不能满足条件,需要自己重新写过滤方法,以下就是我写的过滤方法:

//keywodr 用户输入的关键字public function filterData(keywodr:String):void{                                //templist是一个XMLList类型的全局变量,用于保存最原始的过滤内容                                //unitGroupTree是从后台传入的信息,和树形控件绑定templist = unitGroupTree.copy();var xmllist:XMLList = templist;if(keywodr !=""){this.keyword=keywodr;var myxml:XML=<node/>;for(var k:int=0;k < xmllist.length();k++){var tempxml:XML=getXML(new XMLList(xmllist[k]));if(tempxml.children().length() > 0){myxml.appendChild(tempxml);}}if(myxml.children().length() > 0){                                         myxml.node.node.@checked = "1"; unitGroupTreeTwo =XMLList(myxml);unitGrouplist.dataProvider = unitGroupTreeTwo.children();unitGrouplist.openItems = unitGroupTreeTwo..node;}else{unitGrouplist.dataProvider = null;}}else{unitGroupTree = templist.copy();unitGrouplist.dataProvider = unitGroupTree;unitGrouplist.openItems = unitGroupTree..node;}}public function getXML(xmllist:XMLList):XML{var xmlChildren:XMLList=xmllist.children();var xml:XML=<node/>;if(xmllist.hasOwnProperty("@checked")) xml.@checked=xmllist.@checked;if(xmllist.hasOwnProperty("@name")) xml.@name=xmllist.@name;if(xmllist.hasOwnProperty("@oid"))  xml.@oid=xmllist.@oid;for(var i:int=0;i<xmlChildren.length();i++){if(xmlChildren[i].children().length()>0){var xmlGet:XML=getXML(new XMLList(xmlChildren[i]));var tempStr:String=xmlGet.@name;if((tempStr.toUpperCase().indexOf(this.keyword.toUpperCase())>=0)||xmlGet.children().length() > 0){xml.appendChild(xmlGet);}}else{var temp:String=xmlChildren[i].@name;if(temp.toUpperCase().indexOf(this.keyword.toUpperCase())>=0){xml.appendChild(xmlChildren[i]);}}}return xml;}

热点排行