2012-12-03 130 views
0

在ExtJS 4.1.3中,我們在文本字段上有一個過濾器設置來運行文本字段的'onchange'。這是函數的onchange:過濾器太快問題

var store = this.getStore(); 
value = field.getValue(); 

if (value.length > 0) { 
    // Param name is ignored here since we use custom encoding in the proxy. 
    // id is used by the Store to replace any previous filter 
    store.filter({ 
     id: 'query', 
     property: 'query', 
     value: 'LegalName|#|#|' + value 
    }); 

} else { 
    store.clearFilter(); 
} 

現在,我們遇到了一個問題,當我在文本字段中鍵入一些太快我得到錯誤,我陷入負載屏幕上。當我慢慢地輸入相同的東西時,它會起作用。考慮到慢速輸入它會使它工作,但快速使它失敗,並且從服務器返回的數據在兩個實例中都是相同的,我認爲這是ExtJS的問題。有沒有人看到過這樣的問題?什麼是潛在的問題和修復。我無法弄清楚它爲什麼會突破。這裏是我得到的線索:

Uncaught TypeError: Cannot convert null to object ext-all-debug.js:51752 
    Ext.define.cancelAllPrefetches ext-all-debug.js:51752 
    Ext.util.Event.Ext.extend.fire ext-all-debug.js:8638 
    Ext.define.continueFireEvent ext-all-debug.js:25117 
    Ext.define.fireEvent ext-all-debug.js:25095 
    Ext.define.clear ext-all-debug.js:44718 
    Base.implement.callParent ext-all-debug.js:3735 
    Ext.define.clear ext-all-debug.js:47485 
    Base.implement.callParent ext-all-debug.js:3735 
    PageMap.Ext.Class.clear ext-all-debug.js:52358 
    Ext.define.filter ext-all-debug.js:51377 
    Ext.define.onTextfieldChange /TEST/app/view/ContractGrid.js?_dc=1354553533935:447 
    Ext.util.Event.Ext.extend.fire ext-all-debug.js:8638 
    Ext.define.continueFireEvent ext-all-debug.js:25117 
    Ext.define.fireEvent ext-all-debug.js:25095 
    Ext.override.fireEvent ext-all-debug.js:58382 
    Ext.define.checkChange ext-all-debug.js:30310 
    call ext-all-debug.js:8426 

有什麼想法?

回答

0

我能夠通過更改存儲上的緩衝區設置來解決問題。看起來我已經在商店中設置了「緩衝」爲真,一旦我將其刪除,問題就消失了。