2012-06-10 59 views
0

我是Extjs的新手。當我試圖將組合框與通過AJAX調用填充的商店配合使用時,我正面臨着這個問題。我想組合框來顯示在組合框中鍵入的字符開始,但該組合框始終顯示在list.Here的第一個項目是我的代碼的項目,Extjs組合框始終顯示所選的第一個元素

Ext.define('fieldModel', { 
     extend : 'Ext.data.Model', 
     fields : [ { 
      name : 'name' 
     },{ 
      name : 'value' 
     }] 
    }); 
    { 
       xtype: 'combobox', 
       id: 'startField', 
       name: 'startField', 
       style: 'margin-right:10px;', 
       width: 230, 
       fieldLabel: 'Field', 
       labelAlign: 'top', 
       displayField: 'name', 
       valueField: 'value', 
       triggerAction:'query', 
       minChars:2, 
       //forceSelection:true, 
       //enableKeyEvents:true, 
       minListWidth:150, 
       //allowBlank:false, 
       queryMode: 'remote', 
       typeAhead: true, 
       //hideTrigger: true, 
       store:new Ext.data.JsonStore({ 
        model: 'fieldModel', 
        //autoLoad: true, 
        //sortOnLoad : true, 
        //sortRoot: 'data', 
        proxy : { 
         type : 'ajax', 
         url: requesturl + '?action=getDate&itemid='+ preItemId, 
         reader : { 
          type : 'json', 
          root : 'data', 
         } 
        }, 
        listeners :{ 
         load : function(store, records, successful, operation, eOpts){ 
          Ext.getCmp('startField').getStore().sort('name', 'ASC'); 
         } 
        } 
       }), 

請幫助。

在此先感謝。

回答

0

改變你的監聽器,按鍵或keyup事件

按鍵(Ext.form.field.Text此,Ext.EventObject E,對象eOpts)

該事件僅觸發如果enableKeyEvents設置爲true。

listeners :{ 
     keypress : function(text, event, eOpts){ 
      Ext.getCmp('startField').getStore().sort('name', 'ASC'); 
     } 
    } 
相關問題