gpt4 book ai didi

AG-Grid:updateRowData({update: ItemsArray}) 影响所有行而不是选定行

转载 作者:行者123 更新时间:2023-12-05 01:40:44 25 4
gpt4 key购买 nike

我在这个项目中使用 Ag-Grid 和 Angular,我想做的是设置快捷键,通过按下相关键来更改所选行的“状态”值('1'='status完整'等)。有一个名为 onCellKeyPress() 的内置函数,它在选择一行或多行后监听击键。效果很好,我有一个开关盒,它根据按下的键发送一个值,如下所示:

  onCellKeyPress = (e: any) => {
switch(e.event.key) {
case '0': this.rowUpdates('New'); break;
case '1': this.rowUpdates('Completed'); break;
case '2': this.rowUpdates('Needs Attention'); break;
case '3': this.rowUpdates('Rejected'); break;
}
}

它向我的自定义函数 rowUpdates() 发送一个字符串,该函数获取值,遍历现有节点,查找任何选定的节点,为选定的节点设置值,然后推送它们到一个数组。

这就是麻烦开始的地方。 updateRowData 有 2 个参数,第一个是它正在执行的更新类型(添加、删除、更新),在我的例子中,我使用的是后者,以及要更改的行数组。

  rowUpdates = (value: String) => {
let itemsToUpdate = [];
this.gridOptions.api.forEachNode(rowNode => {
if(rowNode.isSelected() === true) {
const selected = rowNode.data;
selected.status.name = value;
itemsToUpdate.push(selected);
console.log(itemsToUpdate);
}
});
this.gridOptions.api.updateRowData({update: itemsToUpdate});
}

但是,当我按下一个键来更改行值时,它会更新网格中的每一行。更奇怪的是,我有一个方法可以根据“状态”值向行添加一个类,并且只有我打算更改的行才会接收该类。

我被难住了。我已经 console.logged 这个函数中的所有内容,它们都返回了它们的预期值。该数组始终包含已选择的节点,并且 updateRowData 的返回值始终是同一个数组。我尝试用 getSelectedNodesgetSelectedRows 关闭 'forEachNode' 但无济于事。有什么想法吗?

最佳答案

请试试这个。

updateItems(value: String) {
var itemsToUpdate = [];
this.gridApi.forEachNodeAfterFilterAndSort(function(rowNode, index) {
if (!rowNode.selected) {
return;
}
var data = rowNode.data;
data.status.name = value;
itemsToUpdate.push(data);
});
var res = this.gridApi.updateRowData({ update: itemsToUpdate });
this.gridApi.deselectAll();//optional
}

关于AG-Grid:updateRowData({update: ItemsArray}) 影响所有行而不是选定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55959087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com