有人可以帮我这个忙吗?我在Angular 8中使用ag-Grid,其中有一列将单元格渲染器作为单个按钮(比如说Delete按钮),但是当网格触发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,而不是组件。
在此先感谢您的帮助。
我建议您将两个单元格渲染器合并为一个,并根据可以作为cellRenderer
参数传递的字段的值来决定操作。
像这样-
cellRenderer: 'commonRenderer'
cellRendererParams: {
editable : "isEdit" // pass the field value here
}
在单元格渲染器组件内部,您可以agInit
像这样访问内部的此可编辑参数-
agInit(params: any) : void {
params.editable // here
}
现在,您可以基于此传递的参数值来分支更新/删除逻辑。
单元格渲染器组件示例
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句