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

<?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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值