【问题标题】:Not able to update row data in ag-grid angular无法更新 ag-grid 角度中的行数据
【发布时间】:2020-04-17 22:04:34
【问题描述】:

我无法使用 rowNode.setDataValue('key','value') 更新行数据。

    gridApi: GridApi;
gridOptions: GridOptions = {
    frameworkComponents: {
        buttonRenderer: GridActionsComponent,
        customTooltip: CustomTooltip
    },
    onGridSizeChanged: (event: GridSizeChangedEvent) => {
        this.onGridSizeChanged(event);
    },
    onGridReady: (event: GridReadyEvent) => {
        this.gridApi = event.api;
    },
};

updateRowData(data) {
    const rowNode = this.gridApi.getRowNode('0');
    rowNode.setDataValue('status', 'active'); // here is throwing error as undefined
}

【问题讨论】:

  • 你能提供一个有这个错误的 plunkr 吗?使用上面的代码 sn-p,没有办法知道到底发生了什么。
  • 如果您没有自己定义 getRowNodeId,那么您在 getRowNode 中的参数默认应该是一个数字。我看到您将 0 作为字符串传递
  • 抛出错误:“状态”是只读的。

标签: angular ag-grid


【解决方案1】:

您的rowData 上是否有id 属性,或者您是否定义了getRowNodeID 函数?

From docs:

getRowNode(id) 返回具有给定 ID 的行节点。行节点 ID 是您通过回调 getRowNodeId(data) 提供的 ID,否则 ID 是设置行数据时网格自动生成的数字。

我想你会收到undefined 因为这是function

const rowNode = this.gridApi.getRowNode('0');

返回undefined :(什么都没有,意味着你没有那个id)。

如果你没有定义getRowNodeID函数,('0')应该可以工作,因为默认情况下ag-grid使用rowIndex作为ID

【讨论】:

  • 我没有定义 getRowNodeID () ,使用默认的 rowIndex 并将数据放入 rowNode。通过 rowNode.setDataValue('status', 'active') 更新行数据时出错
  • @SreenivasuluKuruva 显示完整代码,我会尽力提供帮助
  • 经过调试越来越多发现它抛出Error: "status" is read-only。它导致了这个问题。
猜你喜欢
  • 2021-01-10
  • 1970-01-01
  • 2020-11-17
  • 1970-01-01
  • 2019-05-31
  • 2019-06-06
  • 1970-01-01
  • 2021-03-10
  • 1970-01-01
相关资源
最近更新 更多