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

来源:互联网 发布:ubuntu tm 编辑:程序博客网 时间:2024/06/06 10:01
<?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>

0 0
原创粉丝点击