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

ui-grid not displaying complete numbers of row provided to it

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

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

当我尝试通过单击 headers 进行排序时,又出现了几行。 (有时 1 或 2)

这不规则,没有规律。它针对不同的数据集随机出现。

我正在使用 ui-grid - v3.2.6,grid-table 有一个 div,其他情况下有 max-heightscroll。我在具有类似实现的页面上有多个这样的网格,但这个问题目前似乎出现在某个网格上。

我可以起草一个 plunker,但这并没有什么帮助,因为这个问题是随机的,而且我有一个基本的 ui-grid 实现。

我遵循了这个 link https://github.com/angular-ui/ui-grid/issues/424,但是我对它的了解不多,我仍然卡住了。

这似乎是一个已知且未修复的错误。但是有什么解决办法吗???

感谢任何帮助..

您可以将此 $scope.gridOptions.excessRows 设置为要显示的行数,默认情况下此值在 ui-grid.

中设置为 4

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

归功于 https://github.com/angular-ui/ui-grid/issues/860

将 virtualizationThreshold 设置为数据中的行数 + 1 会起作用,但如果有很多行,则会出现性能问题。

我没有更改 virtualizationThreshold,而是设置了 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 也是 required。没有设置rowHeight,我又遇到了问题。也许虚拟化算法需要 rowHeight 和 minRowsToShow。

Link 到 ui 网格选项的文档:http://ui-grid.info/docs/#!/api/ui.grid.class:GridOptions