Grid extjs4,在网格中使用selType:checkboxmodel发布,第一次单击后滚动到顶部
我有一个带有selType的网格:“checkboxmodel”,但在IE中有一个问题:单击网格行选择它后,页面滚动到第一行位于顶部的位置 请帮帮忙。找到了合适的答案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
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;
}
});