Extjs 3.4阻止ctrl +鼠标点击

时间:2013-05-02 09:52:18

标签: javascript extjs grid ctrl onmouseclick

我正在使用Ext.grid.GridPanel从商店中填充我的商品。 一切都很好,但我有一个问题。

当我按 ctrl +鼠标点击网格行时,该行取消选择。我怎么能阻止这个动作?

我尝试在鼠标点击事件和按键事件

上编写功能
this.grid.onClick = function(event){
            if (event.ctrlKey === true){
                event.preventDefault();
                event.stopPropagation();
            }
        };

还尝试写return false;代替event.preventDefault(); event.stopPropagation();,但没有运气。

有什么建议吗?

1 个答案:

答案 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。

中添加一些自定义动作