我一直在使用ui-grid一段时间了。最近我遇到了一个网格问题,如果我传递一组稍大的数据(比如50行),网格就不会全部显示。
当我调试并查找我的$ scope.gridOption.data对象时,它似乎包含所有元素,但仍然只显示了几个(大约10个)。
当我尝试通过点击标题进行排序时,会出现更多行。 (有时是1或2)
这不是常规的,也没有模式。它随机发生在不同的数据集中。
我正在使用ui-grid - v3.2.6
,我有div
的网格表,其中max-height
和scroll
。我在具有类似实现的页面上有多个这样的网格,但这个问题似乎出现在某个网格上。
我可以选择一个plunker,但它不会真正有用,因为这个问题是随机的,而且我还有一个基本的ui-grid实现。
我关注了这个链接https://github.com/angular-ui/ui-grid/issues/424
,但是我无法理解它,我仍然被卡住了。
似乎这是一个已知且未修复的错误。但是有什么工作解决方案???
感谢任何帮助..
答案 0 :(得分:4)
我遇到了同样的问题,如果在我的情况下行数大于45,就会发生这种情况。设置self.gridOptions.virtualizationThreshold = data.length + 1;
在gridOptions上解决了我的问题。 VirtualizationThreshold必须大于或等于行数。
答案 1 :(得分:3)
您可以将此$ scope.gridOptions.excessRows设置为您想要显示的行数,默认情况下,此值在ui-grid中设置为4。
答案 2 :(得分:0)
将virtualizationThreshold设置为数据中的行数+ 1将起作用,但是如果行数很多,则会出现性能问题。
我没有更改虚拟化阈值,而是设置了rowHeight和minRowsToShow。仅供参考:在我的案例中,virtualizationThreshold的默认值为20。
以下设置对我有用:
$scope.gridOptions = {
rowHeight: 20, // set this as number and NOT string
// even though the documentation says so.
// If its set as string, the issue of
// all the rows not getting displayed will appear.
minRowsToShow: 18, // this sets the height of the grid
...
minRowsToShow调整网格的高度。还需要rowHeight。没有设置rowHeight,我又遇到了问题。也许虚拟化算法需要rowHeight和minRowsToShow。
链接到ui网格选项的文档:http://ui-grid.info/docs/#!/api/ui.grid.class:GridOptions