2

我有两个组合框,我正在使用一个存储,其中包含“sg”和“aod”键中的 2 个组合的数据。

假设对于第一个组合,我想在“sg”键中填充数据

对于第二个组合,我想用名为“aod”的键填充数据

那么如何在渲染组合时填充数据?

这是我的商店:

var myStore = Ext.create('Ext.data.Store', {
  fields: [{
    name: 'sg'
  }, {
    name: 'aod'
  }],
  data: [{
      'sg': ['1', '2', '3', '4', '5']
    }, {
      'aod': ['15', '20']
    }

  ]
});


Here is my comobos inside items config

defaults: {
    labelAlign: 'top',
    width: '20%',
    style: {
      textAlign: 'center',
      color: '#0a4374',
      fontSize: '12px',
      fontWeight: 'bold'
    },
    labelSeparator: '',
    allowEmpty: false,
    editable: false,
    cls: 'extraComboBox',
    xtype: 'combo',
    autoSelect: true,
    margin: 10
  },
  items: [{
      fieldLabel: 'Combo 1',
      value: '',
      //Here I want to load myStore.data.items[0].data.sg								
    },

    {
      fieldLabel: 'Combo 2',
      value: '',
      //myStore.data.items[1].data.aod			
    }

谢谢你的帮助!!

4

2 回答 2

2

您可以使用ComboBox.valueField

用于显示:Combobox.displayField

于 2013-03-27T09:44:55.487 回答
1

通过使用myStore.getAt(0).get('sg'),我能够将数据填充到 1st combo 并与 2nd combo 相同myStore.getAt(0).get('aod')

要为每个组合设置默认值,请添加

{
    fieldLabel: 'Combo 1',
    id: 'sg',
    store: myStore.getAt(0).get('sg').data,
    listeners: {
        afterrender: function (combo) {
            combo.setValue(myStore.getAt(0).get(combo.id).default);
        }
    }
}, {
    fieldLabel: 'Combo 2e',
    id: 'aod',
    store: myStore.getAt(0).get('aod').data,
    listeners: {
        afterrender: function (combo) {
            combo.setValue(myStore.getAt(0).get(combo.id).default);
        }
    }

}

并更改json如下:

var myStore = Ext.create('Ext.data.Store', {

    fields: [
        {name: 'sg'}, 
        {name: 'aod'}
    ],

    data: [{
            'sg': {
                'default': 1,
                'data': ['1', '2', '3', '4', '5']
            }
        }, {
            'aod': {
                'default': '15',
                'data': ['15', '20']
            }
        }
    ]
});
于 2013-03-27T11:07:30.730 回答