`

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;
			}

分享到:
评论

相关推荐

    Flex ComboBox 树形控件

    Flex ComboBox 是一种强大的用户界面组件,它结合了下拉列表(ComboBox)和树形结构(Tree)的功能,为用户提供了一种交互式的数据选择方式。在Flex应用中,这种控件通常用于显示层次化的数据,允许用户从多个层级的...

    Flex ComBox 下拉树功能

    在添加下拉树功能后,列表变成了一个可展开和折叠的树形结构,用户可以通过展开节点来查看和选择更具体的数据项。 要实现Flex ComBox的下拉树功能,我们需要以下几个关键步骤: 1. 引入库:首先,确保在你的项目中...

    AdvancedDataGrid多表头与树形表格(数据统计)

    在本文中,我们将深入探讨Adobe Flex中的AdvancedDataGrid组件,特别是在实现多表头和树形表格方面的应用,这对于数据统计和展示来说是非常重要的工具。AdvancedDataGrid是Flex中一个功能强大的组件,它允许用户以...

    超酷Flex动画图表

    Flare提供了各种图表、树形图、网络图以及复杂的动画效果,非常适合创建动态、交互式的数据展示。 1. **图表库文件(flare)**: Flare库包含一系列的数据结构和算法,用于数据的组织和可视化。它的核心功能包括: - ...

    从头开发Flex树遇到的问题

    在开发Flex应用程序时,我们经常会遇到构建自定义组件,如“树形视图(Tree)”这样的挑战。Flex是Adobe开发的一种开源框架,用于构建富互联网应用(RIA),它使用ActionScript编程语言和MXML标记语言。在从头开发...

    各种Flex自定义组件

    3. 树形视图(tree):树形视图常用于展示层次结构的数据,如文件系统或组织结构。自定义的tree可能提供了更好的节点操作,如拖放功能、展开/折叠动画或者自定义图标和节点模板。 4. 下拉组合框(combox):在Flex...

    Flex tree的用法

    XML的层级结构非常适合表示树形结构,每个XML元素对应Tree的一个节点。 - **XMLList和XMLListCollection**: 将XML转换为XMLList或XMLListCollection,然后设置给Tree的`dataProvider`属性,这样就可以显示XML数据。...

    Flex 3 in Action

    - **列表和树形结构**:学习如何使用列表和树形结构组件展示数据。 - **数据分页**:实现数据分页功能以提高加载速度。 **第9章:列表定制** - **自定义列表项**:展示如何根据需求定制列表项的外观。 - **列表...

    Flex的组件

    Flex是Adobe公司开发的一种基于ActionScript ...综上所述,高级checkboxTree的实现涉及Flex组件定制、数据绑定、事件处理、过滤算法等多个方面,通过这些知识的综合运用,可以创建出具有高效过滤和多选功能的树形组件。

    flex tree+checkbox级联勾选

    在IT行业中,Flex Tree是一种常用于数据展示和交互的组件,尤其在构建用户界面时,它能够以树形结构清晰地展示层次数据。配合Checkbox(复选框)功能,可以提供用户选择或过滤数据的便利操作。"Flex Tree + Checkbox...

    flex combobx中使用tree

    而将Tree与ComboBox结合,可以创建出一个下拉菜单是树形结构的ComboBox,这种组合可以提供更丰富的用户体验,让用户能够逐级导航和选择复杂的层级数据。 要实现这样的功能,我们需要自定义一个ComboBox的下拉列表...

    用ArrayCollection当做flex中Tree控件的DataProvider

    配置完成后,`Tree`控件会自动根据`ArrayCollection`中的数据结构生成相应的树形结构。`ArrayCollection`的动态性也使得我们可以方便地添加、删除或修改数据,从而实时更新`Tree`的显示。 总结来说,使用`...

    flexlib flex的扩展组件

    3. 导航组件:如面包屑导航、树形视图和分页器,这些可以帮助用户更好地浏览和导航大型数据集或层级结构。 4. 媒体播放组件:支持音频和视频播放,可能具备播放控制、媒体源选择等功能,适合构建多媒体应用。 5. ...

    Flex Gis 开发

    8. **Tree控件**:以树形结构展示数据,常用于表示层次关系。 9. **AdvancedDataGrid控件**:扩展了DataGrid的功能,提供了更高级的数据展示能力。 10. **CSS**:用于控制Flex应用程序的外观和风格,类似于HTML中的...

    带复选框的树状ComboBox

    在Flex编程环境中,"带复选框的树状ComboBox"是一种高级UI组件,它结合了树形结构和下拉框的功能,并且每个节点都配备有复选框,为用户提供了一种方便的方式来多选树状数据。这样的组件在数据筛选、配置设置等场景中...

    IT技术文章示例

    Flex Tree组件是一种树形数据展示控件,常用于表示具有层次结构的数据。实现实时更新,通常需要监听数据源的变化,并在数据变化时触发Tree组件的刷新事件。此外,还可以通过自定义TreeItemRenderer,实现更复杂的...

    AdvancedDataGrid综合应用

    AdvancedDataGrid支持树形结构数据,可以显示嵌套的数据集,这对于展示层次关系复杂的数据非常有用。通过使用GroupingField和DataGroup对象,我们可以将数据按照特定字段进行分组。 3. **多列排序** 与DataGrid...

Global site tag (gtag.js) - Google Analytics