Невозможно изменить overlayNoRowsTemplate после загрузки сетки

Есть две разные ситуации, когда нет строк для отображения. И я хочу менять шаблон каждый раз в зависимости от ситуации. Я обновляю overlayNoRowsTemplate, но шаблон не может быть заменен после загрузки сетки. Обновление сетки не обновляет overlayNoRowsTemplate.


person user3292624    schedule 25.06.2017    source источник


Ответы (2)


Вы можете использовать частные методы Grid API, чтобы сделать это следующим образом:

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

В вашем частном методе

(this.gridApi as any).gridOptionsWrapper.setProperty('overlayNoRowsTemplate', 'newTemplate');
person Rajantha Fernando    schedule 07.09.2020

Вы можете обрабатывать это динамически только через собственный 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.

Дополнительную информацию см. в документации.

person un.spike    schedule 14.09.2018
comment
Задается наложение при инициализации сетки, как изменить текст после загрузки сетки? - person Shailendra Sharma; 18.06.2021