Extjs组合框始终显示所选的第一个元素

时间:2012-06-10 21:26:34

标签: extjs4

我是Extjs的新手。当我尝试将combobox与通过AJAX调用填充的商店一起使用时,我遇到了这个问题。我希望组合框显示以组合框中输入的字符开头的项目,但组合框始终显示列表中的第1项。这是我的代码,

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');
                        }
                    }
                }),

请帮忙。

提前致谢。

1 个答案:

答案 0 :(得分:0)

将您的监听器更改为按键或键盘事件

keypress(Ext.form.field.Text this,Ext.EventObject e,Object eOpts)

仅当enableKeyEvents设置为true时才会触发此事件。

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