我不知道如何获取 MULTI 选择列表的值。
我尝试使用该方法getSelection
;但是,我收到一个未定义的错误。这是我的代码:
refs : {
optionlist : 'Overlayitemlist',
},
var reco= Ext.getCmp('optionlist').getSelection() ;
这是错误:
未捕获的类型错误:无法调用未定义的方法“getSelection”
我哪里错了?
我不知道如何获取 MULTI 选择列表的值。
我尝试使用该方法getSelection
;但是,我收到一个未定义的错误。这是我的代码:
refs : {
optionlist : 'Overlayitemlist',
},
var reco= Ext.getCmp('optionlist').getSelection() ;
这是错误:
未捕获的类型错误:无法调用未定义的方法“getSelection”
我哪里错了?
您可以使用selectionchange
事件来跟踪您的多选,并基于此,您可以将所有这些值推送到数组中。这是一个例子:
Ext.create('Ext.List', {
fullscreen: true,
mode: 'MULTI',
store: {
fields: ['name'],
data: [{
name: 'Red'
}, {
name: 'Orange'
}, {
name: 'Yellow'
}, {
name: 'Green'
}, {
name: 'Blue'
}] // data
}, // store
itemTpl: '{name}',
listeners: {
selectionchange: function (list, records) {
var names = [];
Ext.Array.each(records, function (item) {
names.push('<li>' + item.data.name + '</li>');
});
Ext.Msg.alert('You selected ' + records.length + ' item(s)', '<ul>' + names.join('') + '</ul>');
}
}
});
这是 Senhca 网站(链接)的更新示例。显然,即使他们的演示也无法正常工作。
/*global Ext:false */
Ext.application({
launch: function () {
Ext.create('Ext.List', {
fullscreen: true,
mode: 'MULTI',
store: {
fields: ['name'],
data: [{
name: 'Red'
}, {
name: 'Orange'
}, {
name: 'Yellow'
}, {
name: 'Green'
}, {
name: 'Blue'
}] // data
}, // store
itemTpl: '{name}',
listeners: {
selectionchange: function (list, records) {
var names = [];
Ext.Array.each(list.selected.items, function (item) {
names.push('<li>' + item.data.name + '</li>');
}); // each()
Ext.Msg.alert('You selected ' + list.selected.items.length + ' item(s)');
} // selectionchange
} // listeners
}); // create()
} // launch
}); // application()