2

我有一个简单的组合框,如下所示:

                    {
                    xtype: 'combobox',
                    id: 'prd-main-group',
                    fieldLabel: 'ANA MAL GRUBU',
                    inputWidth: 320,
                    labelWidth: 160,
                    labelAlign: 'right',
                    margin: '15 0 0 0',
                    fieldStyle: 'height: 26px; text-align: right; font-size: 12pt; color:#505050',
                    store: articleMain,
                    valueField: 'WHG',
                    displayField: 'WHG_BEZ',
                    queryMode: 'remote',
                    autoSelect: false,
                    selectOnFocus: true,
                    hideTrigger: true,
                    msgTarget: 'side',
                    triggerAction: 'all',
                    typeAhead: true,
                    minChars: 2,
                    listeners: {
                        select: function (combo, selection) {
                            articleBase.proxy.extraParams = {'maingroup': combo.getValue()};
                            Ext.getCmp('prd-base-group').setDisabled(false);
                            Ext.getCmp('prd-base-group').getStore().removeAll();
                            Ext.getCmp('prd-base-group').setValue(null);
                            Ext.getCmp('prd-sub-group').getStore().removeAll();
                            Ext.getCmp('prd-sub-group').setValue(null);
                            articleBase.load();
                        },
                        focus: function(combo) {
                            combo.setValue('');
                        }
                    }
                },

当我输入两个或更多字符时,组合框下拉列表会出现并显示值,但不会自动定位下拉列表中的选定记录。

正如您所看到的附加屏幕截图,值已完成,但下拉列表没有聚焦选定的记录!

在此处输入图像描述

我的问题是,当我们键入几个字符时,下拉列表应该根据给定的字符自动更改。

4

3 回答 3

1

没有裙子的巢穴我该怎么办:)

我们应该在定义中设置autoLoad: true参数。store之后我们也应该设置queryModelocal。我知道这没有意义,但是当我们设置时autoLoad,数据会在商店创建后立即加载!

                    {

                    xtype: 'combobox',
                    id: 'prd-main-group',
                    fieldLabel: 'ANA MAL GRUBU',
                    inputWidth: 320,
                    labelWidth: 160,
                    labelAlign: 'right',
                    margin: '15 0 0 0',
                    fieldStyle: 'height: 26px; text-align: right; font-size: 12pt; color:#505050',
                    store: articleMain,
                    valueField: 'WHG',
                    displayField: 'WHG_BEZ',
                    queryMode: 'local',
                    autoSelect: true,
                    forceSelection: true,
                    msgTarget: 'side',
                    triggerAction: 'all',
                    listeners: {
                        select: function (combo, selection) {
                            articleBase.proxy.extraParams = {'maingroup': combo.getValue()};
                            Ext.getCmp('prd-base-group').setDisabled(false);
                            Ext.getCmp('prd-base-group').getStore().removeAll();
                            Ext.getCmp('prd-base-group').setValue(null);
                            Ext.getCmp('prd-sub-group').getStore().removeAll();
                            Ext.getCmp('prd-sub-group').setValue(null);
                            articleBase.load();
                        },
                        focus: function(combo) {
                            combo.setValue('');
                        }
                    }
                }

这是商店定义:

var articleMain = new Ext.data.JsonStore({
model: 'ArticleMainGroup',
autoLoad: true,
proxy: {
    type: 'ajax',
    url: '<?php echo base_url() ?>create/get_product_main_group',
    reader: {
        type: 'json',
        root: 'articleMainGroup',
        idProperty: 'ID'
    }
}
});
于 2013-07-31T08:22:17.673 回答
0

You should try with autoSelect: true.

于 2013-07-31T07:50:40.170 回答
0

ForceSelection="true"+TypeAhead="true"它应该可以工作

于 2013-07-31T09:04:46.223 回答