【问题标题】:ag-grid is not rendering all my rows.ag-grid 没有呈现我所有的行。
【发布时间】:2016-11-10 10:16:31
【问题描述】:

我在这个问题上摸不着头脑,但我开始认为这可能是 ag-grid 中的一个错误。

当我期望 5 行数据时,我有一个(不一致地)只呈现 3 行数据的网格。缺少的 2 行有一个空白区域。

寻呼机显示 5 行,而网格似乎知道有 5 行(当我单步执行 javascript 调试器时)。事实上,如果我在网格上排序,或者调整窗口大小以使网格提供滚动条,其他 2 行会突然出现。

有人见过这样的吗?

----更多细节但可能不相关: 在这个特定页面上,我有 2 个网格。有一个主网格,其中包含链接,当您单击链接时,它会隐藏主网格并显示另一个网格。我担心这会以某种方式发挥作用,但实际上我在我正在处理的另一个页面上看到了这个,它只有 1 个网格。

【问题讨论】:

  • 我面临的问题完全一样,已经 4 天了,我正在努力让它发挥作用。我正在进行 $http 调用,我得到的数据只显示前 3 行。如果我再次调用 $http(假设我在 UI 上有一个按钮来执行此操作),那么数据会显示。此外,如果您在网格中滚动,它会显示数据。你能解决这个问题吗?
  • 任何人为此问题更新了工作 plunker 或 stackblitz。 api.refreshview() 已弃用。尝试了 api.cellrefresh() 和 api.renderrowData()

标签: ag-grid


【解决方案1】:

根据我在网上看到的各种解释,我尝试了这个,它似乎有效:

setTimeout(function ()
{
   $scope.gridOptions.api.refreshView();
}, 0);

我在此之后调用它
params.successCallback(pResponse.data);

调用网格的回调

【讨论】:

  • 这么多天的答案在哪里? :) 我不知道这是否是反模式,但我的挫败感已经结束。谢谢!
  • 很高兴它有帮助!
【解决方案2】:

根据您对窗口排序或调整大小会显示数据的观察,我觉得代码需要以某种方式强制屏幕刷新。

this.gridOptions.api.refreshView();

【讨论】:

  • 谢谢,我忘了说我试过了,但没用,虽然我可能需要在代码中的不同位置调用它。
【解决方案3】:

我遇到了类似的问题,发现我的 gridOptions.rowHeight 值与我的行的实际高度不匹配(我在每一行中都有一个复选框元素将高度推高)。

事实证明,AgGrid 行渲染器使用绝对像素位置来计算哪些行应该可见。因此,如果您的实际行高导致行不在预期的确切位置,渲染器将跳过它们。

具有讽刺意味的是,定位代码使用实际位置,因此被渲染的行被定位为好像跳过的行仍然存在,导致所描述的空白空间由 OP 提供。

【讨论】:

    猜你喜欢
    • 2021-08-09
    • 2018-11-14
    • 2021-01-09
    • 2016-06-23
    • 2018-08-07
    • 2017-03-14
    • 2016-06-21
    • 2022-01-27
    • 2018-04-28
    相关资源
    最近更新 更多