【问题标题】:Select all - Select none in Ext JS Combobox全选 - 在 Ext JS 组合框中选择无
【发布时间】:2015-10-15 00:07:12
【问题描述】:

根据这个问题的答案: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/

如果能帮我解决这个问题,我将不胜感激

【问题讨论】:

    标签: javascript extjs combobox


    【解决方案1】:

    我认为使用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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多