5

我的基类中有一个组合框,我只配置“字段”属性。像这样:

items: [
      comboText = Ext.create('Ext.form.ComboBox', {
                width: 150,
                padding: '0 20 0 0',
                displayField: 'label',
                store: Ext.create('Ext.data.Store', {
                    fields: [
                        {type: 'string', name: 'label'},
                        {type: 'string', name: 'fieldName'}
                    ]
                })
            }),
...]

如何仅将数据属性传递给此组合?我尝试了下面的代码但不起作用:

comboTest.store.loadData(value);

其中 value 包含这样的数组:

 [
    {"label":"First name", "fieldName":"firstname"},
    {"label":"Birth date", "fieldName":"birthdate"}
 ]

没有错误,但组合框什么也不打开。

4

5 回答 5

10

我得到这个工作使用:

   xtype:'combo',
   fieldLabel:'Division',
   name:'division',
   valueField: 'division',
   queryMode:'local',
   store:['A','B','C'],
   displayField:'division',
   autoSelect:true,
   forceSelection:true

我知道这个问题真的很老了,但以防万一有人来寻找开箱即用的答案;对我来说就是这样。

于 2014-04-11T14:48:32.093 回答
9

试试这个配置:

       xtype:'combo',
       fieldLabel:'Division',
       name:'division',
       queryMode:'local',
       store:['A','B','C'],
       displayField:'division',
       autoSelect:true,
       forceSelection:true

另一种选择在 ComboBox 的文档中列出:

    // The data store containing the list of states
    var states = Ext.create('Ext.data.Store', {
        fields: ['abbr', 'name'],
        data : [
            {"abbr":"AL", "name":"Alabama"},
            {"abbr":"AK", "name":"Alaska"},
            {"abbr":"AZ", "name":"Arizona"}
            //...
        ]
    });

    // Create the combo box, attached to the states data store
    Ext.create('Ext.form.ComboBox', {
        fieldLabel: 'Choose State',
        store: states,
        queryMode: 'local',
        displayField: 'name',
        valueField: 'abbr',
        renderTo: Ext.getBody()
    });
于 2012-10-30T17:11:39.653 回答
1

valueField是强制性的combobox。尝试valueField在您的组合框中设置。

于 2013-12-09T19:28:17.950 回答
0

有用:

{
    name: 'sample',
    xtype: 'combobox',
    allowBlank: false,
    emptyText: 'select ...',
    queryMode: 'local',
    itemId: 'sample',
    id: 'sample',
    displayField: 'name',
    valueField: 'name',
    forceSelection:true,
    store: ['B','C', 'A'],
    typeAhead: true
}
于 2018-11-03T12:07:16.923 回答
0

而不是使用 loadData();

comboTest.store.loadData(value);

使用 loadRawData();

comboTest.store.loadRawData(value);

如果混乱试试这个小提琴

于 2018-11-05T08:16:40.817 回答