【问题标题】:Is data Store required for Combobox?Combobox 是否需要数据存储?
【发布时间】:2016-08-27 09:27:04
【问题描述】:

用数据填充组合框是否需要数据存储?在查看文档后,它似乎是这样,但我想确认一下,因为我是 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]
    });
});

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

提前致谢。

【问题讨论】:

    标签: javascript extjs


    【解决方案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'
                }
    

    【讨论】:

      【解决方案2】:

      这样也可以

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-09
        • 2011-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多