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 是一种强大的用户界面组件,它结合了下拉列表(ComboBox)和树形结构(Tree)的功能,为用户提供了一种交互式的数据选择方式。在Flex应用中,这种控件通常用于显示层次化的数据,允许用户从多个层级的...
在添加下拉树功能后,列表变成了一个可展开和折叠的树形结构,用户可以通过展开节点来查看和选择更具体的数据项。 要实现Flex ComBox的下拉树功能,我们需要以下几个关键步骤: 1. 引入库:首先,确保在你的项目中...
在本文中,我们将深入探讨Adobe Flex中的AdvancedDataGrid组件,特别是在实现多表头和树形表格方面的应用,这对于数据统计和展示来说是非常重要的工具。AdvancedDataGrid是Flex中一个功能强大的组件,它允许用户以...
Flare提供了各种图表、树形图、网络图以及复杂的动画效果,非常适合创建动态、交互式的数据展示。 1. **图表库文件(flare)**: Flare库包含一系列的数据结构和算法,用于数据的组织和可视化。它的核心功能包括: - ...
在开发Flex应用程序时,我们经常会遇到构建自定义组件,如“树形视图(Tree)”这样的挑战。Flex是Adobe开发的一种开源框架,用于构建富互联网应用(RIA),它使用ActionScript编程语言和MXML标记语言。在从头开发...
3. 树形视图(tree):树形视图常用于展示层次结构的数据,如文件系统或组织结构。自定义的tree可能提供了更好的节点操作,如拖放功能、展开/折叠动画或者自定义图标和节点模板。 4. 下拉组合框(combox):在Flex...
- Tree组件用于构建树形结构的数据展示,适用于表示层次关系的数据集。 #### 高级篇 - **数据序列化** - TWaver-Flex支持数据序列化功能,可以将内存中的数据对象转换为字符串或二进制流,方便存储或传输。 - ...
XML的层级结构非常适合表示树形结构,每个XML元素对应Tree的一个节点。 - **XMLList和XMLListCollection**: 将XML转换为XMLList或XMLListCollection,然后设置给Tree的`dataProvider`属性,这样就可以显示XML数据。...
- **列表和树形结构**:学习如何使用列表和树形结构组件展示数据。 - **数据分页**:实现数据分页功能以提高加载速度。 **第9章:列表定制** - **自定义列表项**:展示如何根据需求定制列表项的外观。 - **列表...
Flex是Adobe公司开发的一种基于ActionScript ...综上所述,高级checkboxTree的实现涉及Flex组件定制、数据绑定、事件处理、过滤算法等多个方面,通过这些知识的综合运用,可以创建出具有高效过滤和多选功能的树形组件。
在IT行业中,Flex Tree是一种常用于数据展示和交互的组件,尤其在构建用户界面时,它能够以树形结构清晰地展示层次数据。配合Checkbox(复选框)功能,可以提供用户选择或过滤数据的便利操作。"Flex Tree + Checkbox...
而将Tree与ComboBox结合,可以创建出一个下拉菜单是树形结构的ComboBox,这种组合可以提供更丰富的用户体验,让用户能够逐级导航和选择复杂的层级数据。 要实现这样的功能,我们需要自定义一个ComboBox的下拉列表...
配置完成后,`Tree`控件会自动根据`ArrayCollection`中的数据结构生成相应的树形结构。`ArrayCollection`的动态性也使得我们可以方便地添加、删除或修改数据,从而实时更新`Tree`的显示。 总结来说,使用`...
3. 导航组件:如面包屑导航、树形视图和分页器,这些可以帮助用户更好地浏览和导航大型数据集或层级结构。 4. 媒体播放组件:支持音频和视频播放,可能具备播放控制、媒体源选择等功能,适合构建多媒体应用。 5. ...
这些控件允许开发者在 Flex 应用程序中轻松实现复杂的网络拓扑图、表格、树形结构等图形界面,从而极大地提高了应用程序的可读性和可用性。 #### 二、TWaverFlex 快速入门 **TWaverFlex 快速上手**:为了帮助初学...
8. **Tree控件**:以树形结构展示数据,常用于表示层次关系。 9. **AdvancedDataGrid控件**:扩展了DataGrid的功能,提供了更高级的数据展示能力。 10. **CSS**:用于控制Flex应用程序的外观和风格,类似于HTML中的...
- **功能**:展示树形结构数据;支持展开/折叠操作;可以使用 DUMMY 对象来填充未定义的部分。 - **使用示例**:创建 Tree 组件后,通过添加根节点和子节点来构建树结构;利用 DUMMY 对象占位符解决数据缺失问题。 ...
在Flex编程环境中,"带复选框的树状ComboBox"是一种高级UI组件,它结合了树形结构和下拉框的功能,并且每个节点都配备有复选框,为用户提供了一种方便的方式来多选树状数据。这样的组件在数据筛选、配置设置等场景中...
Flex Tree组件是一种树形数据展示控件,常用于表示具有层次结构的数据。实现实时更新,通常需要监听数据源的变化,并在数据变化时触发Tree组件的刷新事件。此外,还可以通过自定义TreeItemRenderer,实现更复杂的...
AdvancedDataGrid支持树形结构数据,可以显示嵌套的数据集,这对于展示层次关系复杂的数据非常有用。通过使用GroupingField和DataGroup对象,我们可以将数据按照特定字段进行分组。 3. **多列排序** 与DataGrid...