【问题标题】:Cannot change overlayNoRowsTemplate after grid loaded加载网格后无法更改 overlayNoRowsTemplate
【发布时间】:2017-11-28 12:12:55
【问题描述】:

有两种不同的情况,其中没有要显示的行。我想每次都根据情况更改模板。 我正在更新overlayNoRowsTemplate,但在加载网格后无法替换模板。 刷新网格不会刷新overlayNoRowsTemplate

【问题讨论】:

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


    【解决方案1】:

    您可以使用 Grid API 的私有方法来执行此操作,如下所示,

    onGridReady(params: any) {
        this.gridApi = params.api;
    }
    

    在你的私有方法中

    (this.gridApi as any).gridOptionsWrapper.setProperty('overlayNoRowsTemplate', 'newTemplate');
    

    【讨论】:

    • 在我发现响应错误并想使用模板说“检索数据时出错”的情况下,此解决方案对我不起作用。我在 setProperty() 调用后打印了 this.gridApi 的值,它被修改了,但网格没有用更新的模板值刷新(并继续显示初始模板)。
    【解决方案2】:

    您只能通过自己的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.apigridOptions.noRowsOverlayComponentParams 访问所有相关内容。

    Check docs for more info.

    【讨论】:

    • 在网格初始化时设置了覆盖,网格加载后如何更改文本?
    猜你喜欢
    • 1970-01-01
    • 2013-07-27
    • 2017-07-20
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    相关资源
    最近更新 更多