ExtJS6:单击时如何防止网格行滚动到焦点

ExtJS6: How to prevent grid rows from scrolling into focus when clicking

由于自定义 html 渲染器,我有一个带有复选框 selection 模型和高单元格的网格。问题是当单击任何单元格时,网格会抖动,因为 selected 单元格已滚动到焦点中。

这里有一个fiddle有问题,尝试先手动滚动table到一半,然后点击单元格看网格跳动(不一致,可能需要多试几次次):https://fiddle.sencha.com/#view/editor&fiddle/1vma

有没有一种方法可以禁用关注点击的行,或者如果这是根本原因,则可以禁用点击时的 selection 行(因此您必须对 select 行使用复选框)。

我发现从“beforecellmousedown”事件侦听器函数返回 false 会阻止您试图避免的行为。

listeners: {
    beforecellmousedown: function () {
        return false;
    }
}

这是fiddle:https://fiddle.sencha.com/#view/editor&fiddle/1vq3

如果您的网格行包含需要 editable/selectable 的文本,您可以使用:

viewConfig: {
    navigationModel: {}
}

建议的早期答案仅适用于 Modern Toolkit。 对于 Classic,此代码有帮助:

listeners: {
    cellclick: function () {
        this.blur();
    }
}