4,328
社区成员
发帖
与我相关
我的任务
分享
package com.cattsoft.oss.util.ui.flex.graphkit.component
{
import flash.events.Event;
import mx.collections.ArrayCollection;
import mx.controls.ComboBox;
/**
* @file_name FilterComboBox.as
* @author chenjh
* @date 2008-11-14 14:03:00
* @description 可以根据用户输入过滤选项的ComboBox
*/
public class FilterComboBox extends ComboBox
{
public function FilterComboBox()
{
super();
this.editable=true;
}
override protected function textInput_changeHandler(event:Event):void{
super.textInput_changeHandler(event);
FilterByKey(event);
}
//过滤数据
private function FilterByKey(event:Event):void{
var tempDataProvider:ArrayCollection = this.dataProvider as ArrayCollection;
if (tempDataProvider == null) return;
this.dataProvider.filterFunction = filterFunction;
var tempstr:String = this.text;
if(tempDataProvider.refresh()){
this.dropdown.selectedIndex = -1;
this.dropdown.verticalScrollPosition = 0;
this.text = tempstr;
this.open();
this.textInput.setFocus();
this.textInput.setSelection(tempstr.length,tempstr.length);
}
}
private function filterFunction(item:Object):Boolean{
return item['label'].toString().indexOf(this.text)!=-1;
}
}