Flex中使用filter过滤数据



  1.  <?
    xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  creationComplete="init()" layout="absolute" fontSize="12" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FCFCFC, #FCFCFC]">  
  3.  <mx:Script>  
  4.   <![CDATA[ 
  5.   import mx.collections.ArrayCollection; 
  6.   import mx.events.CloseEvent; 
  7.   public var temp:String=""; 
  8.   [Bindable]private var filteredArr:Array; 
  9.      [Bindable]private var plistArr:Array; 
  10.      [Bindable]   
  11.         public var users:Array =[{id:1,username:"aaa", dept:"开发部"},    
  12.                         {id:2,username:"bbb", dept:"产品部"},    
  13.                      {id:3,username:"ccc", dept:"开发部"},                       
  14.                  {id:4,username:"ddd", dept:"产品部"}]; 
  15.        
  16.       private function init():void{ 
  17.         filteredArr = users.filter(removedDuplicates);  
  18.       } 
  19.       private var keys:Object = {};  
  20.       private function removedDuplicates(item:Object, idx:uint, arr:Array):Boolean {  
  21.                 if (keys.hasOwnProperty(item.dept)) {  
  22.                     return false;  
  23.                 } else {  
  24.                     keys[item.dept] = item;  
  25.                     return true;  
  26.                 }  
  27.             }  
  28.     
  29.       private function closeHandler(event:Event):void { 
  30.                 temp=String(ComboBox(event.target).selectedItem.dept); 
  31.                plistArr=users.filter(conditionFunction); 
  32.             } 
  33.  
  34.       private function conditionFunction(item:Object, idx:uint, arr:Array):Boolean {  
  35.                 if (item.dept==temp){ 
  36.                     return true ;   
  37.                 }else{ 
  38.                  return false; 
  39.                 } 
  40.                
  41.             }         
  42.   ]]>  
  43.  </mx:Script>  
  44.   <mx:Form width="293" height="152"  horizontalCenter="0" verticalCenter="0" borderStyle="solid">  
  45.     <mx:FormItem label="部门:" width="250">  
  46.        <mx:ComboBox   close="closeHandler(event);"  labelField="dept" dataProvider="{filteredArr}"  width="100%"></mx:ComboBox>  
  47.     </mx:FormItem>  
  48.     <mx:FormItem width="250">  
  49.        <mx:Repeater id="checkBoxRepeater" dataProvider="{plistArr}">   
  50.     <mx:CheckBox id="checkBox" label="{checkBoxRepeater.currentItem.username}"/>   
  51.    </mx:Repeater>   
  52.   
  53.     </mx:FormItem>  
  54.    
  55.  </mx:Form>  
  56. </mx:Application>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值