`

Flex 使用ArrayCollection的FilterFunction进行数据过滤

    博客分类:
  • Flex
阅读更多
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
    layout="absolute" fontFamily="simsun" fontSize="12"
     creationComplete="hs.send()">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.rpc.events.*;
            import mx.controls.Alert;
            
            private function hsFault(event:FaultEvent):void{
                Alert.show(event.message.toString(),"Error");
            }
            private function hsResult(event:ResultEvent):void{
                
                mydata = event.result.NewDataSet.Table as ArrayCollection;
                mydata.filterFunction = NameFilterChanged;
                mydata.refresh();
            }
            public function NameFilterChanged(item:Object):Boolean{
                var name:String = item.姓名;
                var sno:String = item.学号;
                var sex:String = item.性别;
                if(cmbSex.selectedItem.data != "全部")
                    return (sno.indexOf(txtSNO.text,0) >= 0) &&(name.indexOf(txtName.text,0) >= 0) && (cmbSex.selectedItem.data == sex);
                else
                    return (sno.indexOf(txtSNO.text,0) >= 0) &&(name.indexOf(txtName.text,0) >= 0);
            }
            
            [Bindable]
            private    var mydata:ArrayCollection;

            
        ]]>
    </mx:Script>
    <mx:HTTPService id="hs" useProxy="false" url="绿色通道名单.xml" fault="hsFault(event)"
     showBusyCursor="true" result="hsResult(event)"/>
    <mx:DataGrid dataProvider="{mydata}" right="10" left="9" top="38" bottom="20" >
        <mx:columns>
            <mx:DataGridColumn headerText="姓名" dataField="姓名"/>
            <mx:DataGridColumn headerText="性别" dataField="性别"/>
            <mx:DataGridColumn headerText="学号" dataField="学号"/>
            <mx:DataGridColumn headerText="准考证号" dataField="准考证号"/>
            <mx:DataGridColumn headerText="生源地" dataField="生源地"/>
            <mx:DataGridColumn headerText="身份" dataField="身份"/>
            <mx:DataGridColumn headerText="户口" dataField="户口"/>
            <mx:DataGridColumn headerText="部门" dataField="部门"/>
            <mx:DataGridColumn headerText="原因" dataField="原因"/>
            <mx:DataGridColumn headerText="财务处是否办理" dataField="财务处是否办理"/>
        </mx:columns>
    </mx:DataGrid>
    <mx:Label x="186" y="12" text="姓名:"/>
    <mx:TextInput id="txtName" x="229" y="10" change="{mydata.refresh()}" width="95"/>
    <mx:ComboBox x="391" y="10" width="94" id="cmbSex" labelField="title" change="mydata.refresh()"> 
        <mx:dataProvider>
            <mx:Array>
                <mx:Object title = "全部" data="全部"/>
                <mx:Object title = "男" data="男"/>
                <mx:Object title = "女" data="女"/>
            </mx:Array>
        </mx:dataProvider>
    </mx:ComboBox>
    <mx:Label x="348" y="12" text="性别:"/>
    <mx:TextInput x="76" y="10" width="102" id="txtSNO" change="{mydata.refresh()}"/>
    <mx:Label x="33" y="12" text="学号:"/>
</mx:Application>
 

 

分享到:
评论

相关推荐

    Flex过滤DataGrid显示的数据

    在Flex中,还可以使用ArrayCollection的`filterFunction`属性和`refresh()`方法来实现动态过滤。`filterFunction`是一个回调函数,用于判断数据项是否应显示在DataGrid中。 此外,Flex还提供了高级过滤功能,如使用...

    flex combobox 输入过滤实例

    - 在事件处理函数中,我们使用ArrayCollection的`filterFunction`属性来定义过滤逻辑。这个函数接受一个item和一个规则参数,返回true表示item应该在过滤结果中显示,false则隐藏。 - 规则通常是输入框的当前文本...

    Flex-DataGrid使用关键字过滤结果

    本文将深入探讨如何利用关键词对Flex DataGrid中的数据进行过滤,以实现更高效的用户数据查找。 首先,我们需要理解Flex DataGrid的过滤机制。DataGrid本身并不直接支持关键字过滤,但可以通过自定义控件和事件监听...

    ArrayCollection不完全绑定

    5. **处理多层数据**:对于复杂的结构,使用数据转换器或自定义itemRenderer来展示所需信息。 在附带的文件`test.mxml`和`other.mxml`中,你可以查找具体的代码实例,分析其中的问题并按照上述建议进行修复。通过对...

    Flex dataGrid实现数据过滤

    原理就是ArrayCollection的filterFunction的使用。是根据老外一个帖子改的,其他下载地址在 :http://www.zuidaima.com/share/1714555305004032.htm

    Grid(3)[数据过虑]

    可以创建自定义过滤器函数或者使用内置的过滤器类,如`ArrayCollection`的`filterFunction`。过滤函数接收一个记录作为参数,如果该记录满足条件,函数应返回`true`,否则返回`false`。 5. **应用过滤器**: 一旦...

    使用搜索的关键字过滤DataGrid的行

    在ActionScript中,你可以使用ArrayCollection的filterFunction属性来定义一个自定义过滤函数,该函数会接收一个数据对象和一个比较值(即搜索关键字),并返回一个布尔值表示该对象是否应被包含在过滤后的结果中。...

    flex 数据绑定 dataGrid.rar

    在本示例中,我们关注的是如何在Flex中使用数据绑定技术来操作DataGrid组件,这是一个用于展示表格数据的强大工具。DataGrid通常用于显示结构化的数据集合,如数据库记录或XML数据。 在Flex中,数据绑定允许我们...

    flex 自动搜索动能

    你可以使用`ArrayCollection`或`ICollectionView`作为数据源,这些集合支持对内容进行实时过滤。在`KEY_DOWN`事件处理函数中,你可以使用`filterFunction`属性来定义一个自定义的过滤函数,该函数接受输入值和数据源...

    flex 筛选,拖拽删除

    在Flex中,我们可以使用ArrayCollection或ListCollectionView等数据结构来存储和管理应用的数据。为了实现筛选功能,我们可以在用户输入查询条件时,动态地过滤这些集合中的数据。这通常通过监听文本框的change事件...

    Flex explorer组件使用实例

    数据源可以是ArrayCollection或其他支持的数据结构,其中包含要显示的对象。 - **配置属性**:Explorer有许多可配置的属性,例如`columns`用于定义列布局,`sortField`用于设置默认排序字段,`allowMultipleSort`...

    flex fliter

    在Flex开发中,为了提供更高效、更便捷的数据筛选功能,自定义一个具有过滤能力的组件是十分必要的。本篇文章将详细解析一个名为“flex filter”的组件实现过程及其背后的逻辑原理。 #### 二、组件概述 该组件主要...

    Flex--AdvanceDataGrid(列头筛选功能,含ComboBox列、Button列、Checkbox列等)

    同时,对数据提供者的操作,如filterFunction和sortFunction的使用也是关键。 在压缩包中的"framework"文件可能包含了项目的基础框架代码,如Flex库、自定义组件或者数据模型等。研究这些代码将有助于深入理解项目...

    AdvancedDataGrid综合应用

    在Flex中,AdvancedDataGrid通常与ArrayCollection或XMLListCollection等数据提供者一起使用。通过设置`dataProvider`属性,我们可以将数据源连接到DataGrid,实现数据的动态更新。 6. **过滤和搜索** ...

    Search,查询结果

    此外,我们可以使用ArrayCollection的sort函数对数据进行排序,以便更好地进行查询。sort函数同样接收一个函数作为参数,定义了排序规则。 ```actionscript var sortFunction:Function = function(item1:Object, ...

    表格演示(1)AdvancedDataGrid应用

    可以使用filterFunction来定义自定义的筛选逻辑,或者直接通过设置filter属性来使用内置的筛选条件。 至于渲染器,AdvancedDataGrid支持自定义单元格渲染,这在展示特殊格式的数据或添加交互性时非常有用。开发者...

Global site tag (gtag.js) - Google Analytics