`
niuyandong1988
  • 浏览: 671 次
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多
Flex自动过滤ComboBox,在网上找了几篇感觉BUG比较多,就自己写了一个。直接上代码,附件中是源码。
package com.ctsi.components
{
	import flash.events.Event;
	
	import mx.collections.ArrayCollection;
	import mx.controls.ComboBox;
	import mx.controls.TextInput;
	import mx.utils.StringUtil;

	public class FilterComboBox extends ComboBox
	{
		private var fullData:ArrayCollection;
		
		public function FilterComboBox() {
			addEventListener("creationComplete", init);
		}
		
		private function init(event:Event) : void {
			fullData = dataProvider as ArrayCollection;
		}
		 
        override protected function textInput_changeHandler(event:Event) : void {
			
			var data:ArrayCollection;
			var keyWord:String;
			
            super.textInput_changeHandler(event); 
			
			if (fullData){  
				
				keyWord = StringUtil.trim(textInput.text);
				
				if (keyWord == "" || keyWord == null)   
					data = fullData;
				else 
					data = filterData(keyWord);
				
				dataProvider = data;  
				dropdown.selectedIndex = -1;  
				dropdown.verticalScrollPosition = 0;  
				textInput.text = keyWord;
				TextInput(textInput).setSelection(keyWord.length, keyWord.length);
				
				open();  
			}  
	    } 
       
        private function filterData(keyWord:String) : ArrayCollection {
			
            var data:ArrayCollection; 
			var item:Object;
			var i:int;
			var value:String;
			
			data = new ArrayCollection(); 
			
            for (i = 0; i < fullData.length; i++) {  
                item = fullData.getItemAt(i);
				
                if (item.hasOwnProperty(labelField)) {  
                    value = item[labelField];  
                    if (value.indexOf(keyWord) != -1) {  
	                    data.addItem(item);  
	                }  
	            }  
	        }
			
            return data;  
	    } 
	}
}

分享到:
评论

相关推荐

    flex datagrid 中实现combobox联动

    总结,Flex中实现DataGrid内ComboBox的联动需要掌握事件监听、数据绑定、自定义组件等技术。通过以上步骤,我们可以创建出交互性强、用户体验良好的数据输入界面。在实际开发中,还需要考虑到性能优化,避免不必要的...

    Flex ComboBox 树形控件

    总结来说,Flex Tree形ComboBox组件是实现层级数据选择的强大工具,通过灵活的数据绑定、自定义渲染和事件处理,可以创建出高度定制化的交互式界面。在实际开发中,了解并掌握这些知识点将有助于构建更高效、更友好...

    flex 自动搜索动能

    Flex自动搜索功能是一种在用户输入时提供实时建议的交互式技术,主要应用于各种搜索框、输入字段或数据筛选场景。这种功能提高了用户界面的效率,因为它允许用户快速找到他们可能正在寻找的内容,而无需完整输入整个...

    Flex4视频教程_03-06ComboBox和DataGrid的使用.rar )

    4. **过滤和搜索功能**:通过设置属性,ComboBox可以实现搜索功能,使用户能够快速找到所需选项。 DataGrid组件是Flex中的一个网格布局控件,常用于展示结构化数据。它的特点和关键知识点包括: 1. **数据列绑定**...

    jquery+flex+自动补全

    4. **数据显示**:jQuery接收服务器的响应数据,使用Flex组件(如`List`或`ComboBox`)展示匹配的建议项。Flex的组件提供了丰富的样式和布局选项,可以轻松定制UI效果。 5. **交互反馈**:用户可以选择建议项,此时...

    flex 自动完成控件(类似google输入框)

    1. **组件选择**:Flex提供了多种组件可以用来实现自动完成,如`ComboBox`和`List`。在这种情况下,`AutoComplete`或自定义`TextInput`控件可能是最佳选择,因为它们可以更好地定制和控制用户的输入行为。 2. **...

    flex4.5学习笔记

    - **高级数据处理**: 包括数据过滤、排序、聚合等操作,以满足复杂的数据分析需求。 #### 五、页面布局和动画 **知识点12:使用DataGroup容器显示数据** - **DataGroup**: 用于管理一组数据项的容器。 - **...

Global site tag (gtag.js) - Google Analytics