Extjs 4.1 Combo - 如何使select函数激活当调用combo.setValue时

时间:2013-08-07 17:11:09

标签: extjs extjs4.1

我有一个类似的组合

        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/

2 个答案:

答案 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事件?