项目中遇到需要实现在Ext.grid.GridPanel中选中单元格时,不需要按ctrl键便可多选,后来在sencha论坛上找到下面方法:重写Ext.grid.CheckboxSelectionModel中的handleMouseDown方法,该方法继承自Ext.grid.RowSelectionModel(),然后调用重写后的方法定义sm即可
Ext.override(Ext.grid.CheckboxSelectionModel, {
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(isSelected){
this.deselectRow(rowIndex);
}else if(!isSelected || this.getCount() > 1){
this.selectRow(rowIndex, true);
view.focusRow(rowIndex);
}
}
}
});
var sm = new Ext.grid.CheckboxSelectionModel();