如何在元素重新渲染后将上一个(重新渲染前)值设置为ag grid Cell Renderer输入元素



我在Angular项目中有一个单元格渲染类,它在ag网格单元格中生成html输入模板。在水平滚动之后,当输入单元格离开屏幕时,ag网格重新渲染这些输入元素,并且输入元素显示它们的值。下面是我的CellRenderer类:

export class TemplateRendererComponent implements ICellRendererAngularComp {
template: TemplateRef<any>;
templateContext: { $implicit: any, params: any };
refresh(params: any): boolean {
this.templateContext = {
$implicit: params.data,
params,
};
return true;
}
agInit(params: ICellRendererParams): void {
this.template = params[ 'ngTemplate' ];
this.refresh(params);
}
}

如何使这些输入元素保持其值?

根据cellRenderer生命周期,一旦它不在视图中,就会被销毁。

您可以实现ngOnDestroy(),并在单元渲染器被破坏之前访问最后一个已知值。

ngOnDestroy() {
// do your stuff here
}

您可以将此值存储在redux存储或服务中。

然后,可以在agInit()中访问该值,同时重新初始化渲染器。

"suppressColumnVirtualization:设置为true,这样网格就不会虚拟化列。例如,如果您有100列,但由于滚动而只有10列可见,那么所有100列都将始终呈现。默认值:false"来源:https://www.ag-grid.com/javascript-grid-properties/

最新更新