首页 > 解决方案 > AgGrid 中的行数

问题描述

我想在我的 AgGrid 中显示行数,但我遇到了问题。

    ngOnInit() { 
      console.log(this.gridOptions.api.getDisplayedRowCount());
    }

错误:

ERROR TypeError: Cannot read property 'getDisplayedRowCount' of undefined
    at ProjectListComponent.webpackJsonp../src/app/project-list/project-list.component.ts.ProjectListComponent.ngOnInit (project-list.component.ts:178)
    at checkAndUpdateDirectiveInline (core.js:12411)
    at checkAndUpdateNodeInline (core.js:13935)
    at checkAndUpdateNode (core.js:13878)
    at debugCheckAndUpdateNode (core.js:14771)
    at debugCheckDirectivesFn (core.js:14712)
    at Object.eval [as updateDirectives] (ProjectListComponent_Host.ngfactory.js? [sm]:1)
    at Object.debugUpdateDirectives [as updateDirectives] (core.js:14697)
    at checkAndUpdateView (core.js:13844)
    at callViewAction (core.js:14195)

Api AgGrid:

getDisplayedRowCount()  Returns the total number of displayed rows.

我不明白为什么我有这个问题......

标签: ag-grid

解决方案


(你提到 ngOnInit 所以我假设你使用
的是 Angular)问题是 api 在ngOnInit. gridReady如果您需要网格 api,您应该监听该事件。

gridReady: ag-Grid 已初始化。例如,如果您需要使用网格的 API 来固定列的大小,请使用此事件。 文档

html:

<ag-grid-angular   style="width: 100%; height: 372px;"
  (gridReady)="onGridReady()">
</ag-grid-angular>

组件 ts:

onGridReady(params: any) {
  console.log('grid ready');
  console.log(this.gridOptions.api.getDisplayedRowCount());
}

您还应该记住,此站点上有一条注释:

有时网格事件会在 Angular 组件准备好接收它之前触发,因此在 Angular 环境中,在使用 API 之前gridReady依赖它更安全。AfterViewInit

gridReady尽管如此,我在使用该活动时从未遇到任何问题。


推荐阅读