我有一个类似的组合
items: {
xtype: 'combo',
id: 'combo',
queryMode: 'local',
displayField: 'name',
valueField: 'id',
store: Ext.create('Ext.data.Store', {
fields: ['id', 'name', 'mydata'],
data: [
{'id': '1', 'name': 'John Smith', 'mydata': ["3", "4"]},
{'id': '2', 'name': 'Albert Einstein', 'mydata': ["1", "2"]}
]
}),
listeners: {
select: function( combo, records, eOpts ) {
alert(records[0].get('mydata')); // records is undefined
}
}
}
但是当我使用
时 var combo = Ext.getCmp('combo');
//combo.select("1");
combo.setValue("1");
combo.fireEvent('select');
然后alert(records[0].get('mydata')); // records is undefined
失败。如何解决这个问题谢谢。
这是我的代码http://jsfiddle.net/LZ8XU/
答案 0 :(得分:13)
由于某种原因,Ext comboBox的select方法不会触发select事件。在我的问题中,我想要设置一个值,并手动触发select事件。如果是这样,还有几个领域需要通过;特别是comboBox本身和选定的记录。
这是一个实现它的实现。
var combo = Ext.getCmp('combo');
var toselect = "Albert Einstein";
combo.select(toselect);
var record = combo.getStore().findRecord('name', toselect);
combo.fireEvent('select', combo, [record]);
答案 1 :(得分:4)
为什么不听取change
事件?