首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AG-Grid: updateRowData({update: ItemsArray})影响所有行,而不是选定行

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

Stack Overflow用户
提问于 2019-05-03 03:31:48
回答 1查看 14.7K关注 0票数 2

我在这个项目中使用了Ag-Grid和Angular,我想要做的就是设置快捷键,通过按下相关的键(‘1’= 'status complete',等等)来改变所选行的'Status‘值。有一个名为onCellKeyPress()的内置函数,它在选择一行或多行后侦听击键。这很好用,我有一个开关用例,它根据按下的键发送一个值,如下所示:

代码语言:javascript
运行
复制
  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有两个参数,第一个是它正在进行的更新类型(添加、删除、更新),在我的例子中,我使用的是后者,以及一个要更改的行数组。

代码语言:javascript
运行
复制
  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});
  }

但是,当我按某个键更改行值时,它会更新网格中的每一行。更奇怪的是,我有一个方法,它根据“Status”值向行中添加一个类,只有我想要更改的行才会接收这个类。

我被难住了。我已经console.logged了这个函数中的所有东西,它们都返回了它们想要的值。该数组始终包含已选择的节点,并且updateRowData的返回值始终是该数组。我试着用getSelectedNodesgetSelectedRows替换掉'forEachNode‘,但都没有用。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-23 06:09:59

请试一下这个。

代码语言:javascript
运行
复制
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
  }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55959087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档