我正在使用Ext.grid.GridPanel从商店中填充我的商品。 一切都很好,但我有一个问题。
当我按 ctrl +鼠标点击网格行时,该行取消选择。我怎么能阻止这个动作?
我尝试在鼠标点击事件和按键事件
上编写功能this.grid.onClick = function(event){
if (event.ctrlKey === true){
event.preventDefault();
event.stopPropagation();
}
};
还尝试写return false;
代替event.preventDefault(); event.stopPropagation();
,但没有运气。
有什么建议吗?
答案 0 :(得分: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);
}
所以我需要覆盖这个函数并在上面提到的if。
中添加一些自定义动作