基于此问题的答案:Select all in ExtJS 4.0 Combobox
afterrender: function () {
me.container.on({
click: function(e) {
console.log('on clic called');
var el = e.getTarget('div', 3, true);
if(el.getAttribute('action') == 'select-all') {
me.select(me.getStore().getRange());
me.setSelectedCount(me.getStore().getRange().length, flabel);
allSelected = true;
} else if (el.getAttribute('action') == 'select-none'){
me.reset();
allSelected = false;
}
}
})
}
我已经在Ext JS中使用“全选”和“全选”实现了自己的组合框。
但是,如果我多次使用它,则该操作将应用于所有实例。只需尝试在一个组合中单击“全选/全不选”,您将看到其他更改:http://jsfiddle.net/hernan666/vfbkgmmu/。
对于原始答案,我得到相同的错误行为:http://jsfiddle.net/hernan666/dFEsc/414/
我们将为解决此问题提供帮助
最佳答案
我认为使用me.container.on
是问题。
我根据您的示例尝试了另一种方法,先听expand
然后听选择器元素的单击,它似乎可以工作:
listeners: {
expand: {
single: true,
fn: function () {
var me = this,
flabel = this.getFieldLabel();
me.picker.on({
click: {
element: 'el',
fn: function (e) {
var el = e.getTarget('div', 3, true);
if (el.getAttribute('action') == 'select-all') {
me.select(me.getStore().getRange());
me.setSelectedCount(me.getStore().getRange().length, flabel);
allSelected = true;
} else if (el.getAttribute('action') == 'select-none') {
me.reset();
allSelected = false;
}
}
}
});
}
}
}
一个有效的示例:http://jsfiddle.net/ot0eaqv1/
关于javascript - 全选-在Ext JS组合框中全选,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33129896/