EXT.JS 4.0.5 中的网格滚动问题,不考虑工具栏高度

Posted

技术标签:

【中文标题】EXT.JS 4.0.5 中的网格滚动问题,不考虑工具栏高度【英文标题】:Grid scrolling issue in EXT.JS 4.0.5, not accounting for toolbar heights 【发布时间】:2013-02-08 21:58:40 【问题描述】:

我有这个网格:

知道为什么会这样做吗?我知道内部面板需要为 350px,并且在 firebug 中应用它可以正常工作,但当然 Ext 喜欢动态重新计算所有内容,我不知道在哪里将高度应用到内部面板以使其显示正确的行为。

我知道 4.0.5 使用虚拟滚动条,我已通过在网格组件上设置 scroll: false 并将 style: overflowX: 'hidden', overflowY: 'scroll' 添加到其视图配置来禁用它们。问题是内部面板没有考虑工具栏的高度,而是将滚动条推到其容器下方。我也无法升级 extjs。有什么想法吗?

【问题讨论】:

【参考方案1】:

这看起来像是 4.1 中解决的错误,但是我无法真正测试您的代码,因此很难判断,您可以尝试在网格的 viewready 事件中执行此操作:

grid.determineScrollbars();

如 4.07 文档中的 here 所述。

编辑:

viewready 事件之后尝试重新布局组件怎么样:

grid.on('viewready', function(grid) 
    grid.doComponentLayout()
);

(或者如果您正在使用 MVC 事件处理方式)

【讨论】:

是的,他们拿出了这些该死的虚拟滚动条,并使用了浏览器的原生滚动。但是由于依赖于库的其他方面,我无法升级到较新的版本。它令人沮丧,因为这些滚动问题不断出现,并且每次都有不同的解决方案。确定滚动条()不起作用:( @Gallen 在上面添加了另一个想法 那里也没有运气。不过,我感谢您的帮助:) 我将应用程序拆开,完全删除了适合布局和网格滚动,而是让面板滚动,现在网格只要它需要的长度。周末我会考虑升级到 4.1 以防止这些问题在未来发生。我给你答案是因为这些方法过去曾帮助解决非常相似的问题。

以上是关于EXT.JS 4.0.5 中的网格滚动问题,不考虑工具栏高度的主要内容,如果未能解决你的问题,请参考以下文章

ext.js 网格中的 Itemtap 侦听器不起作用

带有复选框列的 Ext JS 网格面板

Sencha EXT JS datagrid滚动条专门在列上?

Ext JS 模拟单击​​网格的下一个单元格

Ext JS - 根据第一个网格中的行选择在第二个网格中加载值

如何:在 Ext JS4 中自动调整 GridPanel 列宽 + 读取网格中的所有列值