簡體   English   中英

ExtJs組合過濾無法正常工作

[英]ExtJs combo filtering doesn't work properly

我嘗試使用2個ExtJs組合。

當用戶更改第一個(更改事件)時, 我更改了第二個的存儲 (非常類似於國家/地區狀態過濾。當用戶選擇國家/地區時,我會將國家/地區加載到第二個組合商店中)。

到這里為止,一切正常。

當我在第二個組合中添加一個beforequery事件偵聽器時,就會出現問題:

beforequery: function(record) {
    record.query = new RegExp(record.query, 'i');
    record.forceAll = true;
}

我這樣做是為了使用戶能夠更方便地搜索組合(也可以從單詞的中間而不是從頭開始)。

而且有效

但是當我使用此beforequery偵聽器時,我在組合存儲中所做的更改並不總是出現在組合中。 顯然,只有當我將記錄添加到存儲中時,它才會顯示在組合中,但是當我刪除記錄id時,並不會將它們刪除。

有人對為什么會發生有想法嗎?

任何幫助,將不勝感激。

以“ before-”開頭的事件的事件函數應返回true才能繼續,返回false則可以取消事件。

beforequery: function(record) {
    record.query = new RegExp(record.query, 'i');
    record.forceAll = true;
    return true;
}

看來ExtJ在Store.removeAll()函數中有一個錯誤。

(它們會清除所有記錄,但是忘記將它們從商店的快照中刪除)。

我必須將對組合的基礎store.removeAll()的所有調用都刪除到while()上,以逐一刪除項。

然后就可以了。

這也適用於新版本的extjs(> = 5):

var allRecords = store.getData().getSource() || store.getData();
allRecords.removeAll();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM