0

私はExtjsが初めてです。AJAX 呼び出しによって設定されたストアでコンボボックスを使用しようとすると、この問題に直面しています。コンボボックスに入力された文字で始まるアイテムをコンボボックスに表示したいのですが、コンボボックスは常にリストの最初のアイテムを表示しています。私のコードは次のとおりです。

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

助けてください。

前もって感謝します。

4

1 に答える 1

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');
        }
   }
于 2012-06-11T07:53:44.417 に答える