Динамическое изменение Cell Renderer ag-grid с использованием функции param в Angular 8 - PullRequest
1 голос
/ 24 апреля 2020

Может кто-нибудь помочь мне с этим? Я использую ag-Grid в Angular 8, где у меня есть столбец, в котором средство визуализации ячеек представляет собой одну кнопку (скажем, кнопку «Удалить»), но когда сетка вызывает событие cellValueChange, т. Е. При изменении определенного значения ячейки, я хочу удалить кнопка рендеринга ячеек для замены другими рендерами ячеек.

Вот что я делаю,

columnDefs: {

    headerName: 'Delete'
    cellRenderer: (params: ICellRendererParams) => {
        return getCellRenderer(params);
    }
}

getCellRenderer(params)
{
    if (params.value.isEdit)
        return 'updateRenderer';
    else
        return 'deleteRenderer';
}

isEdit - это скрытый столбец в сетке, значение которого установлено в 1 на вызов события, иначе по умолчанию он будет равен 0 для всех строк.

Итак, эта функция должна возвращать средство визуализации. Я создал frameworkComponent, как показано ниже:

frameworkComponent: {
    deleteRenderer: DeleteRendererComponent,
    updateRenderer: UpdateRendererComponent
} 

Теперь, когда я предоставляю cellRenderer: 'deleteRenderer', я получил соответствующий компонент. Но когда я вызываю его через функцию, я получаю только строку, напечатанную как deleteRenderer, а не как компонент.

Заранее спасибо, любая помощь будет оценена.

1 Ответ

1 голос
/ 25 апреля 2020

Я бы посоветовал вам объединить оба средства визуализации ячеек и выбрать действие, основываясь на значении поля, которое вы можете передать как cellRenderer параметр.

Примерно так -

cellRenderer: 'commonRenderer'
cellRendererParams: {
  editable : "isEdit" // pass the field value here
}

Внутри компонента визуализации ячеек вы можете получить доступ к этому редактируемому параметру внутри agInit вот так -

agInit(params: any) : void {
    params.editable // here
}

Теперь вы можете ветвь с обновления / удаления логи c на основе этого переданного значения параметра.

Компонент средства визуализации ячеек пример

...