【问题标题】:SlickGrid vertical scroll bar not displaying properly unless the filter is displayed/hidden to re-size the viewport除非显示/隐藏过滤器以重新调整视口大小,否则 SlickGrid 垂直滚动条无法正确显示
【发布时间】:2012-04-12 05:58:44
【问题描述】:

我刚开始使用 SlickGrid,但我在创建可以与分页插件交互的远程模型方面取得了很大成功。我唯一的问题似乎是浏览器问题,但我很好奇是否有人知道可以解决问题的技巧。

我正在通过 AJAX 在我的模型中逐页检索数据,并使用 grid.setData()grid.render() 方法更新网格。

我想解决的问题是,当数据长度发生变化时,垂直滚动条会变得非常混乱,除非我更改过滤器面板的当前可见性(grid.hideTopPanel()grid.showTopPanel())。混淆是指滚动条中的滚动句柄不会改变大小以指示当前当前的不同行数,如果列表增长,滚动句柄大小会随着我向上和向下滚动而跳跃.

我假设“修复”有效,因为它强制浏览器重新计算视口高度,但有什么方法可以强制这种情况发生吗?还是有更好的方法来做我想做的事情?

【问题讨论】:

    标签: ajax paging slickgrid


    【解决方案1】:

    Ok mleibman 让我明白了,我真正要找的是grid.updateRowCount()。我相信他会在grid.setData() 中添加对此的调用,但现在只需确保两个方法调用一起使用。

    【讨论】:

      【解决方案2】:

      我想通了。您需要在拨打grid.setData() 后拨打grid.resizeCanvas()。看起来这应该是grid.setData() 方法的一部分,因为调用它会改变行数。但无论如何,这就是你需要做的。

      【讨论】:

        【解决方案3】:

        你试过grid.invalidate() 吗?我的经验迫使网格重新计算几乎所有内容。它可能比您需要的更严厉,但至少您可以看到完全无效是否可以解决问题。

        【讨论】:

        • 如果您查看 grid.setData() 方法,它确实会调用 invalidate 但感谢您的建议
        • 我没有意识到您多次致电setData()。你是对的,如果你继续重置数据引用,那么你每次都会得到一个invalidate()。很高兴您找到了解决方法。
        猜你喜欢
        • 1970-01-01
        • 2012-09-03
        • 1970-01-01
        • 1970-01-01
        • 2020-09-10
        • 2014-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多