我刚刚开始使用 SlickGrid,但我已经成功创建了一个可以与分页插件交互的远程模型。我遇到的唯一问题似乎是浏览器问题,但我很好奇是否有人知道可以解决该问题的技巧。
我通过 AJAX 在模型中逐页检索数据,并使用
grid.setData()
和 grid.render()
方法更新网格。
我想解决的问题是,当数据长度发生变化时,垂直滚动条会变得非常混乱,除非我更改过滤器面板的当前可见性(
grid.hideTopPanel()
或grid.showTopPanel()
)。我所说的困惑是指滚动条中的滚动手柄不会改变大小来指示当前的不同行数,并且如果列表增长,当我上下滚动时,滚动手柄大小会跳遍各处。
我假设“修复”有效,因为它强制浏览器重新计算视口高度,但是有什么方法可以强制发生这种情况吗?或者有更好的方法来做我想做的事吗?
好吧,姆莱布曼理清了我的思路,我真正想要的是
grid.updateRowCount()
。我相信他会在 grid.setData()
中添加对此的调用,但现在只需确保这 2 个方法调用一起使用即可。
你尝试过吗
grid.invalidate()
?我的经验迫使网格重新计算几乎所有内容。它可能比您需要的更严厉,但至少您可以看到完全无效是否可以解决问题。
我想通了。您需要在拨打
grid.resizeCanvas()
之后再拨打grid.setData()
。看起来这应该是 grid.setData()
方法的一部分,因为调用它会改变行数。但无论如何,这就是你需要做的。