Grid extjs4,在网格中使用selType:checkboxmodel发布,第一次单击后滚动到顶部

Grid extjs4,在网格中使用selType:checkboxmodel发布,第一次单击后滚动到顶部,grid,extjs4,Grid,Extjs4,我有一个带有selType的网格:“checkboxmodel”,但在IE中有一个问题:单击网格行选择它后,页面滚动到第一行位于顶部的位置 请帮帮忙。找到了合适的答案 Ext.override(Ext.selection.CheckboxModel, { onRowMouseDown: function (view, record, item, index, e) { //view.el.focus(); - comment

我有一个带有selType的网格:“checkboxmodel”,但在IE中有一个问题:单击网格行选择它后,页面滚动到第一行位于顶部的位置

请帮帮忙。

找到了合适的答案

        Ext.override(Ext.selection.CheckboxModel, {
            onRowMouseDown: function (view, record, item, index, e) {
                //view.el.focus(); - commented focus()
                var me = this,
                    checker = e.getTarget('.' + Ext.baseCSSPrefix + 'grid-row-checker'),
                    mode;
                if (!me.allowRightMouseSelection(e)) {
                    return;
                }
                if (me.checkOnly && !checker) {
                    return;
                }
                if (checker) {
                    mode = me.getSelectionMode();
                    if (mode !== 'SINGLE') {
                        me.setSelectionMode('SIMPLE');
                    }
                    me.selectWithEvent(record, e);
                    me.setSelectionMode(mode);
                } else {
                    me.selectWithEvent(record, e);
                }
            }
        });

为我工作

解决所有场景和选择模型问题根本原因的另一个解决方案:

Ext.override(Ext.dom.Element, {
    focus: function (defer, dom) {
        var me = this,
            scrollTop,
            body;

        dom = dom || me.dom;
        body = (dom.ownerDocument || DOC).body || DOC.body;
        try {
            if (Number(defer)) {
                Ext.defer(me.focus, defer, me, [null, dom]);
            } else {
                if (dom.tagName != 'DIV') {
                    if (dom.offsetHeight > Ext.dom.Element.getViewHeight()) {
                        scrollTop = body.scrollTop;
                    }
                    dom.focus();
                    if (scrollTop !== undefined) {
                        body.scrollTop = scrollTop;
                    }
                }
            }
        } catch (e) {
        }
        return me;
    }
});