如果使用带有 Angular 6 的 ag-Grid 执行全行更新,则获取已编辑的列(带有数据)
Posted
技术标签:
【中文标题】如果使用带有 Angular 6 的 ag-Grid 执行全行更新,则获取已编辑的列(带有数据)【英文标题】:Get the edited columns (with data) if performing a full row update using ag-Grid with Angular 6 【发布时间】:2019-07-22 09:29:12 【问题描述】:我已经实现了全行更新,但在更新行之前,我需要获取已编辑的列以及列中存在的相应数据。为了在更新行之前对数据进行一些验证以显示错误消息,我使用(rowValueChanged)="onRowValueChanged($event)"
方法。
【问题讨论】:
【参考方案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 也被初始化为该行下拉列表中的第一个选项,因此更改的列也包含该列名。但我没有编辑任何东西以上是关于如果使用带有 Angular 6 的 ag-Grid 执行全行更新,则获取已编辑的列(带有数据)的主要内容,如果未能解决你的问题,请参考以下文章
Angular 6获取带有httpclient问题的响应标头