2014-09-25 61 views
0

如果單詞匹配,則typeahead可以正常工作,但是如果輸入的字符不正確,則不匹配,則輸入的所有文本都將消失。EXTJS 4.2 - 未找到匹配項時重置組合框

例如,

奧迪式先行作品,並發現奧迪。

金型前方作品,發現奧迪。

輔助類型向前找不到文本,但空白輸入的組合框文本,因此我不能退格x並繼續我的搜索。

X - 鍵入預先輸入的文本,爲了能夠再次搜索,我必須退格一個空白字符。

問題:

1)關於如何解決這個問題的任何想法?到目前爲止,我的研究是指向afterQuery函數,但目前爲止還沒有確定性。

2)是否可以重寫typeahead並改爲使用自定義過濾器? (這將是我的首選選項)

這是代碼...。

Ext.require(['*', 'Ext.ux.data.PagingMemoryProxy']); 


Ext.define('Filter.data.Store', { 
    extend: 'Ext.data.Store', 
    id: 'carsStore', 
    autoLoad: true, 
    fields: ['name'], 
    pageSize: 3, 
    remoteFilter:true, 
    proxy: { 
     type: 'pagingmemory', 
     // url: 'data.json', 
     reader: { 
      type: 'json', 
      root: 'items', 
      totalProperty: 'total' 
     } 
    } 
}); 


Ext.onReady(function() { 
var itemsPerPage = 4, 
    data = { 
     "total": 6, 
     "items": [{ 
      'name': 'Ford' 
     }, { 
      'name': 'GM' 
     }, { 
      'name': 'VW' 
     }, { 
      'name': 'Audi' 
     }, { 
      'name': 'Ferrari' 
     }, { 
      'name': 'McLaren' 
     }] 
    }, 
    store = Ext.create('Filter.data.Store',{ 
     data:data 
    }); 

    store.load(); 

Ext.create('Ext.grid.Panel', { 
    title: 'ComboBox TypeAhead Issue', 
    store: store, 
    columns: [{ 
     header: 'Name', 
     dataIndex: 'name' 
    }, ], 
    width: 700, 
    height: 150, 
    dockedItems: [ 
       {   
     xtype: 'combobox', 
     width: 7, 
     hidden: false, 
     store: store, 
     fieldLabel: 'name', 
     pageSize: true,   
     displayField: 'name', 
     valueField: 'name', 
      forceSelection: true, 
      editable: true, 
      typeAhead: true, 
      queryMode: 'local', 
     }], 
    renderTo: Ext.getBody() 
}); 

});

回答