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?

Code

这是重绘行的界面:

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;
  }

文档:

following sample 中看到这个实现。