Angular ag-grid:延迟加载列数据

发布于 2025-01-12 17:27:50 字数 460 浏览 1 评论 0原文

我有一个特殊的问题需要解决。我使用的是 ag-grid 企业版,数据使用 Angular/NgRx 和后端的 SpringBoot 加载到网格中。网格中有 10 列,其中 9 列很容易从数据库加载。剩余的列在后端处理起来有点复杂,并且它阻碍了整体网格加载时间。

这就是我正在寻找的:

  • 是否可以在 ag-grid 中检索 9 个简单列并加载网格,并且作为数据,剩余列可用,然后刷新网格。因此,完整的网格加载速度很快,并且在数据可用后仅更新一列。
  • 我也尝试过主从模型,但我需要将其视为一列,并且应该根据其值进行过滤。
  • 我尝试查看多个来源,包括 Angular - ag-grid - 动态添加列但我无法找到任何有用的指针。

I have a peculiar problem to address. I am using ag-grid enterprise version and the data is loaded in the grid using Angular/NgRx with SpringBoot in the backend. There are 10 columns in the grid and 9 of them are pretty easy to load from the database. The remaining column is a bit complex to process on backend and it hampers the overall grid load time.

Here's what I am looking for:

  • Is it possible in ag-grid to retrieve 9 easy columns and load the grid, and as the data the remaining column is available, then refresh the grid. So the full grid loads quickly and just updates one column after its data is available.
  • I have also tried the master-detail model but I need to see this as a column and filtering should be available based on its value.
  • I tried checking out several sources including Angular - ag-grid - add columns dynamically but I am unable to find out any useful pointers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白衬杉格子梦 2025-01-19 17:27:50

将您的查询分为两部分:

  • 第一个查询将加载 9 列的数据并填充网格。第 10 列将具有一些占位符值。
  • 第二个查询将加载剩余列的值,完成后,您可以像这样更新网格数据:
const withCol10 = [
{
    id: 1,
    col10: 42
}
// ...
];
this.gridApi.forEachNode(rowNode => {
  const original = rowNode.data;
  const updated = withCol10.find(i => i.id === original.id);
  if (!updated) {
    rowNode.setData({
      ...original,
      ...updated
    });
  }
});

请参阅 文档 了解更多详细信息。

Split your query in two:

  • The first will load the data with 9 columns and fill the grid. The 10th column will have some placeholder value.
  • The second query will load values of the remaining column and once completed, you can update grid data like this:
const withCol10 = [
{
    id: 1,
    col10: 42
}
// ...
];
this.gridApi.forEachNode(rowNode => {
  const original = rowNode.data;
  const updated = withCol10.find(i => i.id === original.id);
  if (!updated) {
    rowNode.setData({
      ...original,
      ...updated
    });
  }
});

See docs for more details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文