8

我有一个像

        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/

4

2 回答 2

13

出于某种原因,Ext 组合框的 select 方法不会触发 select 事件。在我看来,您想设置一个值,然后手动触发 select 事件。如果是这样,还有几个字段需要通过;特别是组合框本身和选定的记录。

这是一个实现它的实现。

var combo = Ext.getCmp('combo');
var toselect = "Albert Einstein";

combo.select(toselect);
var record = combo.getStore().findRecord('name', toselect);
combo.fireEvent('select', combo, [record]);
于 2013-08-07T19:58:59.420 回答
4

为什么不听change事件呢?

于 2013-12-12T11:31:48.707 回答