首页 > 解决方案 > 用数据重新填充 ag-grid

问题描述

我正在使用onGridReady组件文件中的方法从 html 初始化 ag-grid。

<div style="flex-grow:1;">
    <ag-grid-angular

      style="float:left;width: 100%; height: 201px;margin-top:10px;"
      class="ag-theme-balham"
      [gridOptions]="gridOptions"
      [columnDefs]="columnDefs"
      (gridReady)="onGridReady($event)"
      [rowData]="rowData"
      #grid
    >
    </ag-grid-angular>
  </div>

在我的.ts文件中,我正在处理onGridReady以下内容:

onGridReady(params?: any) {
    console.log("onGridReady");
    var datasource = {
      getRows: (params: IGetRowsParams) => {
        this.info = "Getting datasource rows, start: " + params.startRow + ", end: " + params.endRow;
        console.log(this.info);
        this.getRowData().then(data => {
          if (this.stopApiCalls) {
            var lastRow = this.allTableData.length;
            params.successCallback(data, lastRow)
          }
          else {
            params.successCallback(data)
          }
        })
      }
    };
    console.log(">>",datasource);
    params.api.setDatasource(datasource);
  }

this.getRowData用于使用 http 从后端服务获取数据。

我现在需要重新初始化并使用onGridReady在不同组件文件中处理的某个事件。我可以访问我的 ag-grid 组件中的方法。但是我怎样才能onGridReady从其他组件调用事件呢?

标签: angulartypescriptag-grid

解决方案


gridReady事件恰好在网格初始化之后发生,因此如果您想获得动态组件,则需要更复杂的解决方案。

可能的破解:通过带有动态参数的路由器重新渲染视图


推荐阅读