Как добавить функциональность shift click в checkboxmodel для сетки в extjs?

#javascript #extjs #checkbox #selection #multi-select

#javascript #extjs #флажок #выбор #множественный выбор

Вопрос:

сегодня я столкнулся с проблемой функциональности shift click extjs 4 .Я хочу использовать ту же функциональность, что и в gmail . При нажатии флажка с помощью shift click строка должна быть выбрана.У меня есть панель сетки checkbox - selModel . И я хочу добавить эту функциональность только при нажатии на флажок, а не при нажатии на ячейку. Я проверил mode и multiSelect настроил из checkboxModel и grid panel , но они работают только для выбора строки, а не для выбора флажка.Заранее спасибо.

Ответ №1:

Наконец, рабочее решение с ext js 4.2

 Ext.define('MyApp.override.CheckboxModelOverrides', {
override: 'Ext.selection.CheckboxModel', 

 onRowMouseDown : function(view, record, item, index, e) {
    var me = this;

    if (index !== -1) {

        if (!me.allowRightMouseSelection(e)) {
            return;
        }

        if (e.shiftKey amp;amp; me.lastFocused) {
            me.selectRange(me.lastFocused, record, e.ctrlKey);
            me.processSelection(view, record, item, index, e);
        }

        if (!me.isSelected(record)) {
            me.mousedownAction = true;
            me.processSelection(view, record, item, index, e);
        } else {
            me.mousedownAction = false;
        }
    }

  }   
});