我需要一個基於用戶輸入過濾數據提供者的組合框嗎?基於用戶輸入過濾數據提供者的組合框(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