【问题标题】:Get the edited columns (with data) if performing a full row update using ag-Grid with Angular 6如果使用带有 Angular 6 的 ag-Grid 执行全行更新,则获取已编辑的列(带有数据)
【发布时间】:2019-07-22 09:29:12
【问题描述】:

我已经实现了全行更新,但在更新行之前,我需要获取已编辑的列以及列中存在的相应数据。为了在更新行之前对数据进行一些验证以显示错误消息,我使用(rowValueChanged)="onRowValueChanged($event)" 方法。

【问题讨论】:

    标签: angular6 ag-grid ag-grid-angular ag-grid-validation


    【解决方案1】:

    我相信要做到这一点,您需要同时监听 rowValueChanged、cellValueChanged 事件 并添加一个带有编辑值的标志

      onRowValueChanged(event) {
        console.log(`Changed Values = ${event.node.changedValues.join(',')}`);
        // do validations
      }
    
      onCellValueChanged(event) {
        if (event.newValue !== event.oldValue) {
    
          if (!event.node.changedValues)
          event.node.changedValues = [];
    
          event.node.changedValues.push(event['column']['colId']);
        }
      }
    

    【讨论】:

    • 使用 ag 网格 18.0 版
    • 如果您同时使用这两个事件,onCellValueChanged 会在编辑字段时设置它,然后您可以在 onRowValueChanged 中使用它
    • 非常感谢您回答和解释逻辑,这正是我想要的。
    • 实际上我使用的是一个列的固定值的下拉列表,所以点击一行来编辑具有该列的行(最初值为空),下拉列表value 也被初始化为该行下拉列表中的第一个选项,因此更改的列也包含该列名。但我没有编辑任何东西
    猜你喜欢
    • 2017-09-25
    • 2020-04-09
    • 2019-07-23
    • 1970-01-01
    • 2021-05-19
    • 2017-02-18
    • 1970-01-01
    • 2018-10-24
    • 2023-03-13
    相关资源
    最近更新 更多