【问题标题】:Is there a way in angular to update the rowData when value changes inside a cellRendererComponent, when using ag-grid-angular当使用 ag-grid-angular 时,当 cellRendererComponent 内的值发生变化时,是否有角度更新 rowData 的方法
【发布时间】:2019-02-27 10:23:45
【问题描述】:

我的列定义如下:

    colDef = [{
       headerName: 'Cell ID',
       field: 'cellId',
       cellRendererFramework: CellIdCellRendererComponent,
    },
    {
       headerName: 'Set ID',
       field: 'cellId'
       cellRendererFramework: SetIdCellRendererComponent,
    }]

在 cellIdCellRendererComponent 中,我正在尝试更新整个 RowData,如下所示:

this.params.api.updateRowData(this.params.data);

【问题讨论】:

  • 您正在尝试更新相同的单元格值或其他值?
  • 我正在尝试更新另一个单元格值,在第一个单元格中我有一个下拉列表,并且根据下拉列表中的值选择,我必须更新下一列中下拉列表的值。

标签: angular ag-grid ag-grid-ng2


【解决方案1】:

您可以使用ICellRendererParams 的node 属性来执行此操作。

this.params.node.updateData(this.params.data);

检查定义。

export interface ICellRendererParams {
   ...
   node: RowNode;
}

updateData(data: any): void; 是一个方法或RowNode。

【讨论】:

  • 非常感谢您的回答,当我更改该 cellRendererComponent 内部的某些内容时,node.updateData 第一次工作,当我尝试在同一个单元格中进行一些更改时,第二个单元格的 agInit没有被调用。
  • 是什么让你认为更新值时应该调用 agInit?我认为它在渲染器初始化时只被调用一次。
  • 我想根据 setId 中的选择更新 cellId 单元组件的值,所以我希望在修改 setId 的值时执行 cellId 的 agInit。已更新问题以澄清此评论。
【解决方案2】:

我正在尝试更新另一个单元格值,在第一个单元格中我有一个 下拉菜单,并根据下拉菜单中的值选择,我必须 更新下一列中下拉列表的值。

所以你只需要使用setDataValue方法

params.node.setDataValue(anotherCell, anotherCellNewValue):

【讨论】:

  • 这对我有用。非常感谢@un.spike的回答
猜你喜欢
  • 2021-11-20
  • 2018-10-23
  • 1970-01-01
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 2016-12-26
相关资源
最近更新 更多