如何在 ngoninit 期间在 ag 网格中使用 showLoadingOverlay

Posted

技术标签:

【中文标题】如何在 ngoninit 期间在 ag 网格中使用 showLoadingOverlay【英文标题】:How to use showLoadingOverlay in ag grid during ngoninit 【发布时间】:2020-12-18 17:24:53 【问题描述】:

我正在使用 ag 网格在我的一个应用程序中显示表格。在应用程序初始化期间加载数据时,我无法看到加载消息。下面是我的代码,

ngOnInit() 
    this.gridOptions =

    columnDefs: this.columnDefs,
    overlayLoadingTemplate:
'<span class="ag-overlay-loading-center">Please wait while your rows are loading</span>',
    rowData: [],
    enableCellChangeFlash: true,
    onGridReady: function (params)
    
        params.api.setRowData(this.rowData);
        params.api.showLoadingOverlay();
        
    ,
    onFirstDataRendered(params)
    
        params.api.sizeColumnsToFit();
    ,
    defaultColDef: 
        flex: 1,
        minWidth: 100,
        resizable: true,
        headerCheckboxSelection: this.isFirstColumn,
        checkboxSelection: this.isFirstColumn,
      ,
      suppressRowClickSelection: true,
      rowSelection: 'multiple',
;


    //var user_from_date = this.fromDate
    
    

【问题讨论】:

【参考方案1】:

在您的代码中,您在网格准备好时设置行数据,这意味着 ag-grid 将在初始化 API 后立即显示数据,这就是您看不到任何加载的原因。如果你稍微延迟一下,你可能会看到加载覆盖。

onGridReady: function (params)

   params.api.showLoadingOverlay();
   setTimeout(() => 
      params.api.setRowData(this.rowData);
   , 500);
,

需要注意的是,如果可能,ag-grid 会尝试在内部为您处理覆盖,因此您不必在获取数据时调用 GridApi.hideOverlay()

Live Demo

【讨论】:

this.gridApi.refreshInfiniteCache()有什么用,能不能也一样

以上是关于如何在 ngoninit 期间在 ag 网格中使用 showLoadingOverlay的主要内容,如果未能解决你的问题,请参考以下文章

Ag-Grid 在与下拉列表交互期间保持自定义过滤器打开

如何在反应中更新按钮单击ag网格中的行

如何在 ag 网格中获取拖动的列定义?

如果 colDef 是预定义的并且在引号中,我如何使用 valueFormatter 函数? - AG-网格

使用 ag 网格在 Angular2 上渲染 excel 表

如何通过调整大小功能使 ag 网格标题具有粘性和响应性