【发布时间】:2017-11-28 12:12:55
【问题描述】:
有两种不同的情况,其中没有要显示的行。我想每次都根据情况更改模板。
我正在更新overlayNoRowsTemplate,但在加载网格后无法替换模板。
刷新网格不会刷新overlayNoRowsTemplate。
【问题讨论】:
标签: angular ag-grid ag-grid-ng2
有两种不同的情况,其中没有要显示的行。我想每次都根据情况更改模板。
我正在更新overlayNoRowsTemplate,但在加载网格后无法替换模板。
刷新网格不会刷新overlayNoRowsTemplate。
【问题讨论】:
标签: angular ag-grid ag-grid-ng2
您可以使用 Grid API 的私有方法来执行此操作,如下所示,
onGridReady(params: any) {
this.gridApi = params.api;
}
在你的私有方法中
(this.gridApi as any).gridOptionsWrapper.setProperty('overlayNoRowsTemplate', 'newTemplate');
【讨论】:
您只能通过自己的Overlay Component 动态处理它,因为overlayNoRowsTemplate 与其他gridOptions 一样不支持动态更改。
import { Component } from '@angular/core';
import { INoRowsOverlayAngularComp } from "ag-grid-angular";
@Component({
selector: 'app-no-rows-overlay',
template: `<div class="ag-overlay-loading-center" style="background-color: lightcoral; height: 9%">` +
` <i class="fa fa-frown-o"> {{this.params.noRowsMessageFunc()}} </i>` +
`</div>`
})
export class CustomNoRowsOverlay implements INoRowsOverlayAngularComp {
private params: any;
agInit(params): void {
this.params = params;
}
}
如您所见,设置起来并不难,而且您可以通过params.api 和gridOptions.noRowsOverlayComponentParams 访问所有相关内容。
【讨论】: