ExtJs 4.1 - 如何同步两个网格的垂直滚动?

时间:2012-12-14 05:56:47

标签: extjs grid scroll scrollbar extjs4.1

我们在面板中有两个网格,我们需要将它们的记录垂直滚动。也就是说,如果用户垂直滚动任何一个网格,那么其他网格也会滚动。

因此,绑定其垂直滚动条的方法是什么?

版本4.0.2a的解决方案存在here,但所使用的函数已在4.1版本中弃用,因此在较新版本中不起作用。

有没有人可以指导如何在ExtJs 4.1版中实现这一点。*?

感谢您提前提供任何帮助。

3 个答案:

答案 0 :(得分:7)

我在API中看不到任何方便,但仍然可以连接到html元素:

grid1.view.getEl().on('scroll', function(e, t) {
    grid2.view.getEl().dom.scrollTop = t.scrollTop;
});
grid2.view.getEl().on('scroll', function(e, t) {
    grid1.view.getEl().dom.scrollTop = t.scrollTop;
});

工作样本:http://jsfiddle.net/CSwAH/

答案 1 :(得分:1)

最近“锁定网格”已经可用。 http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/locking-grid.html

易于使用,也很有用。

我的回答是2年后,但是对于那些正在寻找一个好解决方案的人来说。

答案 2 :(得分:0)

这似乎是一个老帖子,但我想分享我的部分答案。看,当添加同步滚动条时,问题是鼠标滚轮滚动有点慢。 请参阅此fiddle

所以,我提出的是为事件添加延迟:

grid1.view.getEl().on('scroll', function(e, t) {
    grid2.view.getEl().dom.scrollTop = t.scrollTop;
}, grid1.view.getEl(), {delay: 50});
grid2.view.getEl().on('scroll', function(e, t) {
    grid1.view.getEl().dom.scrollTop = t.scrollTop;
},grid2.view.getEl(),{delay: 50}); //50 seems fine for me. adjust if you must