2

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

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

此处提供了 4.0.2a 版本的解决方案,但使用的功能在 4.1 版本中已被弃用,因此它在较新的版本中不起作用。

谁能指导如何在 ExtJs 版本 4.1.* 中实现这一点?

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

4

3 回答 3

8

我在 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/

于 2012-12-14T08:50:27.913 回答
1

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

易于使用,也很有用。

我的答案是 2 年后出现的,但它适用于任何正在寻找好的解决方案的人。

于 2015-05-14T13:16:12.700 回答
0

这似乎是一个旧帖子,但我想分享我的部分答案。看,当添加同步滚动条时,问题是鼠标滚轮滚动有点慢。看到这个小提琴

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

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
于 2017-04-05T09:46:53.777 回答