我的extjs版本是4.0.2a。有时网格中的垂直滚动条停止工作。这是常见的问题。我找到了一些解决方案,但它们对我不起作用:
this.Grid.hideVerticalScroller();
this.Grid.initVerticalScroller();
this.Grid.update();
this.Grid.determineScrollbars();
this.Grid.forceComponentLayout();
this.Grid.doComponentLayout();
我也尝试过滚动:false,但它也没有用,并且我的浏览器停止响应。 我想,我可以禁用extjs网格滚动条并添加浏览器标准滚动条(溢出:自动),但我不知道如何。 有什么建议吗?
P.S。我不能使用另一个版本Extjs,因为有一个非常大的工作项目,在一些核心文件中有一些修复。使用新版本的Extjs
将很难完成所有工作答案 0 :(得分:3)
这是我在4.0.7中使用的“修复”;它可能适用于4.0.2。代码不是我的,我从sencha.com论坛上拿了它:
Ext.define('Ext.ux.grid.Panel', {
extend: 'Ext.grid.Panel',
initComponent: function() {
var me = this;
me.callParent(arguments);
me.on('scrollershow', function(scroller) {
if (scroller && scroller.scrollEl) {
scroller.clearManagedListeners();
scroller.mon(scroller.scrollEl, 'scroll', scroller.onElScroll, scroller);
}
});
},
onViewRefresh: function() {
var me = this;
try {
me.callParent();
}
catch (e) {};
}
});
使用Ext.ux.grid.Panel而不是Ext.grid.Panel继承您的Grid类。它没有完全解决问题,但却大大降低了特定错误的可见性。
另外,我会建议你咬紧牙关并升级到4.1.1,根据我的经验,这是非常值得的。首先从核心中删除自定义修复程序;您可以将它们重构为覆盖核心类的单独类。在那之后,它会变得更容易。我知道,我也经历过这一切。