论坛首页 编程语言技术论坛

一个很简单的过滤下拉框

浏览 2644 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-11-21  
第一次写控件,纯属学习
<?xml version="1.0" encoding="utf-8"?>   
<mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml" enter="toggleFilter(event)" editable="true">   
<mx:Script>   
    <![CDATA[   
        import com.eshangrao.util.ObjectKeyMap;    
        import mx.events.FlexEvent;   
        import mx.collections.ArrayCollection;   
           
        //需要2个重要参数1.dataprovider:arrcoll 2.item.name的这个过滤属性    
        private var _labelName:String = "labelName";    
        public function set labelName( value:String ) : void    
        {    
                 _labelName = value;    
                 invalidateProperties();    
        }    
        public function get labelName() : String   
        {    
                 return _labelName;    
        }   
       
        private function toggleFilter(event:FlexEvent):void{   
            //trace(this.text);   
            //trace(event.currentTarget.text);   
            if (event.currentTarget.text!="") {   
                //var filtStr:String=event.currentTarget.text;   
                this.dataProvider.filterFunction = processFilter;   
            } else {   
                this.dataProvider.filterFunction = null;   
            }   
                this.dataProvider.refresh();   
            }   
        private function processFilter(item:Object):Boolean {   
            //trace((String)(item.name));   
            //trace((String)(item["name"]));   
            return ((String)(item[_labelName])).indexOf(this.text)==0;   
            }   
       
    ]]>   
</mx:Script>   
</mx:ComboBox>  

第一次写,很简单的。过滤条件也很简单,没用到正则表达式。(懒的去查资料),item[_labelName]这个动态获取属性的方法很重要,多亏了网友的帮助。
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics