我需要一个基于用户输入过滤数据提供者的组合框吗?基于用户输入过滤数据提供者的组合框(combobox)
例如,如果用户输入为“CA”,则组合框将过滤数据提供者并仅显示以“CA”开头的数据。 (“CANADA”和“CALIFORNİA”)
注意:combobox是可编辑的。
,我需要这个组合框在Flex 3中
编辑:好吧,我得到了javaluca一些帮助,我写了这一点。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="createCompFonk()">
<mx:Script>
<![CDATA[
import mx.controls.Text;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.controls.TextInput;
import mx.events.ItemClickEvent;
import mx.events.DataGridEvent;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.collections.ListCollectionView;
import mx.controls.ComboBox
var sayac:int=0;
var degisken:String;
[Bindable]
private var initDG:ArrayCollection = new ArrayCollection([ {islem:'Tahsilat112', tarih:'01/01/2000', isim:'ATA'},{islem:'Ödeme', tarih:'02/03/2010', isim:'BETA'} ]);
public function createCompFonk():void{
gggcombo.textInput.addEventListener(TextEvent.TEXT_INPUT, textChange);
}
protected function textChange(evt:TextEvent):void{
(gggcombo.dataProvider as ArrayCollection).filterFunction = filterFunc;
(gggcombo.dataProvider as ArrayCollection).refresh();
// REFRESH IS NECESSARY
}
public function filterFunc(item:Object):Boolean{
var pattern:String = gggcombo.textInput.text.toLowerCase();
var string:String = item.islem;
return pattern == string.substr(0, pattern.length);
}
]]>
</mx:Script>
<mx:Panel x="0" y="0" width="435" height="216"
layout="absolute" title="Empty Default Datagrid">
<mx:ComboBox id="gggcombo" dataProvider="{initDG}" labelField="islem" editable="true" >
</mx:ComboBox>
</mx:Panel>
</mx:Application>
但我上这些行的错误:通过静态类型为mx.controls参考inaccesible属性为textInput的 尝试ACCES:
gggcombo.textInput.addEventListener(TextEvent.TEXT_INPUT, textChange);
和
var pattern:String = gggcombo.textInput.text.toLowerCase();
错误是:comboBox
尝试对过滤器和自动完成Klovis组件:http://lab.kapit.fr/default/klovis-kap-it-libraries/ – 2015-03-02 10:59:15