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

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

1 ответ

Вы можете использовать частные методы 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,

Проверьте документы для получения дополнительной информации.

Другие вопросы по тегам