AG-GRID Angular - 如何在另一个 cellRenderer 上更改值后重绘一个 cellRender
AG-GRID Angular - How to redraw one cellRender after change value on another cellRenderer
我有一个网格和两个 CellRenderer。
第一个是 select,您选择一个数字,第二个是多个 select 离子。
在更改第一个渲染器的数字后,我需要删除第二个渲染器中的所有值。
我在选择新号码后得到了这个代码:
onChangeClick(e: any) {
this.params.data.renderOne = e.value;
if (e.value) {
var itemsToUpdate = [];
let currentIndex = this.params.rowIndex;
var rowNode = this.params.api.getDisplayedRowAtIndex(currentIndex);
var data = rowNode.data;
data.renderTwo = [];
itemsToUpdate.push(data);
this.params.api.applyTransactionAsync({ update: itemsToUpdate });
this.params.api.refreshCells({ columns: ['renderTwo'] });
}
}
改变数字,我看到数组变空了,但我之前选择的多个值仍然出现在 refreshCells() 之后。
如何仅重绘 'renderTwo' 渲染器以清空单元格。
我已经尝试 api.redrawRows() 但删除了行中的所有数据而不是重置 renderTwo?
这是重绘行的界面:
interface RedrawRowsParams {
rowNodes?: RowNode[]; // the row nodes to redraw
}
您只能重绘整个行节点,因此如果您想刷新渲染器中的值,我建议在第二个渲染器中实现刷新方法:
refresh(params: ICellEditorParams) {
// set value into cell again
this.params = params;
this.renderTwoList = params.data.renderTwo;
return true;
}
文档:
- https://www.ag-grid.com/angular-grid/component-cell-renderer/#grid-vs-component-refresh-1
- https://www.ag-grid.com/angular-grid/component-cell-renderer/#simple-cell-renderer
- https://www.ag-grid.com/angular-grid/view-refresh/#redraw-rows
在 following sample 中看到这个实现。
我有一个网格和两个 CellRenderer。 第一个是 select,您选择一个数字,第二个是多个 select 离子。 在更改第一个渲染器的数字后,我需要删除第二个渲染器中的所有值。
我在选择新号码后得到了这个代码:
onChangeClick(e: any) {
this.params.data.renderOne = e.value;
if (e.value) {
var itemsToUpdate = [];
let currentIndex = this.params.rowIndex;
var rowNode = this.params.api.getDisplayedRowAtIndex(currentIndex);
var data = rowNode.data;
data.renderTwo = [];
itemsToUpdate.push(data);
this.params.api.applyTransactionAsync({ update: itemsToUpdate });
this.params.api.refreshCells({ columns: ['renderTwo'] });
}
}
改变数字,我看到数组变空了,但我之前选择的多个值仍然出现在 refreshCells() 之后。
如何仅重绘 'renderTwo' 渲染器以清空单元格。 我已经尝试 api.redrawRows() 但删除了行中的所有数据而不是重置 renderTwo?
这是重绘行的界面:
interface RedrawRowsParams {
rowNodes?: RowNode[]; // the row nodes to redraw
}
您只能重绘整个行节点,因此如果您想刷新渲染器中的值,我建议在第二个渲染器中实现刷新方法:
refresh(params: ICellEditorParams) {
// set value into cell again
this.params = params;
this.renderTwoList = params.data.renderTwo;
return true;
}
文档:
- https://www.ag-grid.com/angular-grid/component-cell-renderer/#grid-vs-component-refresh-1
- https://www.ag-grid.com/angular-grid/component-cell-renderer/#simple-cell-renderer
- https://www.ag-grid.com/angular-grid/view-refresh/#redraw-rows
在 following sample 中看到这个实现。