我目前正在使用基于可编辑网格示例的Extjs 4的网格组件。我希望有一个与每个单元格关联的链接,这样当我点击一个单元格时,它会将我带到另一个页面。但是,当点击链接时,页面上有一个三角形的垂直滚动。
e.g。尝试减小http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/cell-editing.html的大小,网格上的第一次单击会滚动页面,以便网格位于中心并吞下事件。您必须再次单击以注册cellclick事件。这只发生在IE中(我使用的是版本8)。好消息是,其他浏览器不会发生这种情况,这可能是一个错误,有没有办法防止第一次滚动动作发生?
谢谢
答案 0 :(得分:11)
我遇到了同样的问题,并在Sencha讨论板上找到了解决方案。
添加此代码对我有用:
selModel: Ext.create('Ext.selection.Model', { listeners: {} }),
答案 1 :(得分:2)
试用这个补丁
Ext.override(Ext.selection.RowModel, {
onRowMouseDown: function(view, record, item, index, e) {
//IE fix: set focus to the first DIV in selected row
Ext.get(item).down('div').focus();
if (!this.allowRightMouseSelection(e)) {
return;
}
this.selectWithEvent(record, e);
}
});
答案 2 :(得分:2)
我今天在ExtJS 4.2上遇到了同样的问题,早期的解决方案对我来说不起作用,在gridpanel上使用这个配置完全解决了这个问题:
viewConfig: {
focusRow: Ext.emptyFn
}
例如:
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
viewConfig: {
focusRow: Ext.emptyFn
}
columns: [
{ text: 'Name', dataIndex: 'name' },
{ text: 'Email', dataIndex: 'email', flex: 1 },
{ text: 'Phone', dataIndex: 'phone' }
],
height: 200,
width: 400,
renderTo: Ext.getBody()
});
答案 3 :(得分:1)
这可能类似于这个问题:In IE7 the first click on a grid causes an ExtJS Ext.grid.GridPanel to jump to the top of the page 尝试位置:相对;缩放:在网格周围的容器上为1给它hasLayout