您的位置:首页 > 其它

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

2015-03-27 08:35 786 查看
<?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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: