【问题标题】:Autosize column not working in ag-Grid with RxJS使用 RxJS 在 ag-Grid 中自动调整列不工作
【发布时间】:2018-08-15 08:00:34
【问题描述】:

我正在使用 ag-grid 在 UI 中表示一些数据。在使用 RxJS 设置行数据后,我遇到了自动调整列大小的问题。

我有一个设置数据的代码:

this.accountingStoreService.getPurchaseOrders().subscribe(
  purchaseOrders => {
      this.gridApi.setRowData(purchaseOrders);
  }
);

如何调用 autoSize 来确保所有数据都已呈现?我试图使用 processRowPostCreate 但如果不设置超时它也无法工作:

this.gridOptions = {
  rowData: this.purchaseOrders,
  processRowPostCreate: (params) => {
    this.generateRowEvents(params);
  },
...
}

public generateRowEvents(params) {
   params.addRenderedRowListener('load', this.autoSizeColumns());
}

public autoSizeColumns() {
    const allColumnIds = [];
    this.gridColumnApi.getAllColumns().forEach(function (column) {
      if (!column.colDef.suppressSizeToFit) {
         allColumnIds.push(column.colId);
      }
    });
    setTimeout(() => {
      this.gridColumnApi.autoSizeColumns(allColumnIds);
    }, 300);
}

但这种实现有时会不正确。

是否可以在不使用任何超时或类似的东西的情况下实现它?

【问题讨论】:

    标签: angular ag-grid ag-grid-ng2


    【解决方案1】:

    问题是您的autoSizeColumns 方法在数据呈现在网格上之前被调用。为了解决这个问题,您可以使用在行数据更改时触发的网格事件。 ag-Grid 文档有一个详细描述的events 列表,在你的情况下,我猜rowDataChanged 很合适。

    所以在你的模板上,你会有这样的东西:

    <ag-grid-angular 
        class="ag-theme-balham"
        [gridOptions]="gridOptions" 
        [rowData]="rowData"
        (gridReady)="onGridReady($event)" 
        (rowDataChanged)="autoSizeAll()">
    </ag-grid-angular>
    

    在你的控制器上:

    autoSizeAll() {
        const allColumnIds = this.gridColumnApi.getAllColumns().map((column) => column.getColId());
        this.gridColumnApi.autoSizeColumns(allColumnIds);
    }
    

    别忘了在onGridReady 事件上初始化this.gridColumnApi

    【讨论】:

    • "column" 类中的 "colId" 将是只读的。所以在某些情况下它是不可访问的。使用“getColId”而不是 colId。 this.gridColumnApi.getAllColumns().map((column) => column.getColId());
    • 感谢您的关注。我已经更新了答案。
    猜你喜欢
    • 1970-01-01
    • 2019-08-24
    • 2017-07-18
    • 2021-10-03
    • 2019-12-01
    • 2018-09-29
    • 1970-01-01
    • 2021-02-09
    • 2021-03-18
    相关资源
    最近更新 更多