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 Tree形ComboBox组件是实现层级数据选择的强大工具,通过灵活的数据绑定、自定义渲染和事件处理,可以创建出高度定制化的交互式界面。在实际开发中,了解并掌握这些知识点将有助于构建更高效、更友好...
Flex自动搜索功能是一种在用户输入时提供实时建议的交互式技术,主要应用于各种搜索框、输入字段或数据筛选场景。这种功能提高了用户界面的效率,因为它允许用户快速找到他们可能正在寻找的内容,而无需完整输入整个...
4. **过滤和搜索功能**:通过设置属性,ComboBox可以实现搜索功能,使用户能够快速找到所需选项。 DataGrid组件是Flex中的一个网格布局控件,常用于展示结构化数据。它的特点和关键知识点包括: 1. **数据列绑定**...
4. **数据显示**:jQuery接收服务器的响应数据,使用Flex组件(如`List`或`ComboBox`)展示匹配的建议项。Flex的组件提供了丰富的样式和布局选项,可以轻松定制UI效果。 5. **交互反馈**:用户可以选择建议项,此时...
1. **组件选择**:Flex提供了多种组件可以用来实现自动完成,如`ComboBox`和`List`。在这种情况下,`AutoComplete`或自定义`TextInput`控件可能是最佳选择,因为它们可以更好地定制和控制用户的输入行为。 2. **...
- **高级数据处理**: 包括数据过滤、排序、聚合等操作,以满足复杂的数据分析需求。 #### 五、页面布局和动画 **知识点12:使用DataGroup容器显示数据** - **DataGroup**: 用于管理一组数据项的容器。 - **...