Combobox需要数据存储吗?

时间:2016-05-02 14:52:54

标签: javascript extjs

是否需要使用数据填充组合框?在查看文档之后,它似乎是,但我想确认,因为我是ExtJS的新手。

  

选择列表的选项从任何Ext.data.Store填充,包括远程存储。商店中的数据项分别通过valueField和displayField配置映射到每个选项的显示文本和支持值。 - http://docs.sencha.com/extjs/4.0.7/#!/api/Ext.form.field.ComboBox

我有几种形式的组合框;所有这些都包含不同的选项。这是否意味着我必须为每个组合框创建一个数据存储?

Ext.onReady(function() {
    console.clear();
    Ext.create('Ext.data.Store', {
        storeId: 'confiurationDetailsStoreForRead',
        fields: ['value', 'name'],
        data: [{
            "value": "72001",
            "name": "Enabled"
        }, {
            "value": "72002",
            "name": "Disabled"
        }, {
            "value": "72003",
            "name": "Required"
        }]
    });
    var configurationDetailsPanel = Ext.create({
        xtype: 'form',
        url: '/employeeSearchResult',
        items: [{
            xtype: 'combobox',
            fieldLabel: 'Config Type',
            store: Ext.getStore('confiurationDetailsStoreForRead'),
            queryMode: 'local',
            displayField: 'name',
            valueField: 'value'
        }],

        buttonAlign: 'left',
        buttons: [{
            text: 'Search',
            handler: function() {
                console.log('Search Pressed');
            }
        }, {
            text: 'Reset',
            handler: function() {
                this.up('form').getForm().reset();
            }
        }]
    });

    //Main Container
    Ext.create({
        xtype: 'panel',
        renderTo: Ext.getBody(),
        defaultType: 'button',
        layout: {
            type: 'vbox',
            align: 'stretch'
        },
        items: [configurationDetailsPanel]
    });
});

上面的代码是我表单中一个组合框的示例。我想知道是否有任何方法可以将数据放在combox配置中(而不是创建存储然后在配置中引用该存储)?或者我在代码中使用的方法是唯一的方法吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

是的!您可以将商店直接放入组合框:

                {
                xtype: 'combobox',
                fieldLabel: 'Config Type',
                displayField: 'name',
                queryMode: 'local',
                store: {
                    fields: [
                        'value',
                        'name'
                    ],
                    data: [
                        {
                            value: '72001',
                            name: 'Enabled'
                        },
                        {
                            value: '72002',
                            name: 'Disabled'
                        },
                        {
                            value: '72003',
                            name: 'Required'
                        }
                    ]
                },
                valueField: 'value'
            }

答案 1 :(得分:1)

也可以这样做

    {
        xtype: 'combobox',
        fieldLabel: 'Config Type',
        queryMode: 'local',
        store: [ 
            [ '72001', 'Enabled' ], 
            [ '72002', 'Disabled' ], 
            [ '72003', 'Required' ] 
        ]
    }