2013-05-02 3 views
0

i`m используя Ext.grid.GridPanel для заполнения моих предметов из магазинов. Все работает неплохо, но у меня есть одна проблема.Extjs 3.4 запретить ctrl + щелчок мыши

Когда я нажимаю ctrl + щелчок мышью по строке сетки, строка отменяет выбор. Как я мог предотвратить это действие?

Я попытался функции писать на событие щелчка мыши и ключ вниз событие

this.grid.onClick = function(event){ 
      if (event.ctrlKey === true){ 
       event.preventDefault(); 
       event.stopPropagation(); 
      } 
     }; 

также пытался писать return false; вместо event.preventDefault(); event.stopPropagation();, но не повезло.

Любые предложения?

ответ

0

Обнаружено одно обходное решение.

в RowSelectionModel.js есть пользовательская функция handleMouseDown

handleMouseDown : function(g, rowIndex, e){ 
    if(e.button !== 0 || this.isLocked()){ 
     return; 
    } 
    var view = this.grid.getView(); 
    if(e.shiftKey && !this.singleSelect && this.last !== false){ 
     var last = this.last; 
     this.selectRange(last, rowIndex, e.ctrlKey); 
     this.last = last; // reset the last 
     view.focusRow(rowIndex); 
    }else{ 
     var isSelected = this.isSelected(rowIndex); 
     if(e.ctrlKey && isSelected){ 
      this.deselectRow(rowIndex); 
     }else if(!isSelected || this.getCount() > 1){ 
      this.selectRow(rowIndex, e.ctrlKey || e.shiftKey); 
      view.focusRow(rowIndex); 
     } 
    } 
}, 

есть линии

if(e.ctrlKey && isSelected){ 
    this.deselectRow(rowIndex); 
} 

Так я нужно переопределить эту функцию и добавить некоторые пользовательские действия в выше, если.

Смежные вопросы