ui-grid不显示提供给它的完整行数

时间:2016-10-07 11:39:33

标签: angularjs angular-ui-grid ui-grid

我一直在使用ui-grid一段时间了。最近我遇到了一个网格问题,如果我传递一组稍大的数据(比如50行),网格就不会全部显示。

当我调试并查找我的$ scope.gridOption.data对象时,它似乎包含所有元素,但仍然只显示了几个(大约10个)。

当我尝试通过点击标题进行排序时,会出现更多行。 (有时是1或2)

这不是常规的,也没有模式。它随机发生在不同的数据集中。

我正在使用ui-grid - v3.2.6,我有div的网格表,其中max-heightscroll。我在具有类似实现的页面上有多个这样的网格,但这个问题似乎出现在某个网格上。

我可以选择一个plunker,但它不会真正有用,因为这个问题是随机的,而且我还有一个基本的ui-grid实现。

我关注了这个链接https://github.com/angular-ui/ui-grid/issues/424,但是我无法理解它,我仍然被卡住了。

似乎这是一个已知且未修复的错误。但是有什么工作解决方案???

感谢任何帮助..

3 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,如果在我的情况下行数大于45,就会发生这种情况。设置self.gridOptions.virtualizationThreshold = data.length + 1; 在gridOptions上解决了我的问题。 VirtualizationThreshold必须大于或等于行数。

信用转到https://github.com/angular-ui/ui-grid/issues/860

答案 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