angularjs Ag-grid isRowSelectable条件未激活

y3bcpkx1  于 2023-06-21  发布在  Angular
关注(0)|答案(3)|浏览(138)

我们有一个Ag-Grid表,通过内置的复选框功能进行行选择。复选框通过isRowSelectable选项有条件显示:

isRowSelectable: function (rowNode) {
        return rowNode.data ? rowNode.data.published === false : true;
      }

已发布的列正在作为从另一列调用的模式的一部分进行更新。关闭模式时调用redrawRows

modal.result.then(() => {
            const row = params.api.getDisplayedRowAtIndex(params.rowIndex as number);
            //this.gridApi?.redrawRows([row] as any);
            this.gridApi?.redrawRows();
          });

当模式关闭时,行中的显示值将被更新,但是,当发布的值设置为false时,复选框不会出现。如果我在Dev Tools中挂起一个断点,isRowSelectable代码似乎不会被命中。
任何建议将不胜感激。
干杯

  • 约翰
qoefvg9y

qoefvg9y1#

你能试试这个看看是否有效吗?

let itemsToUpdate = [];

let data = rowNode.data;
// modify data fields
// Ex: data.field1 = "new value";

itemsToUpdate.push(data);

this.gridApi.applyTransaction({update: itemsToUpdate});

https://www.ag-grid.com/javascript-data-grid/data-update-transactions/

9jyewag0

9jyewag02#

使用refreshCells

this.gridApi?.refreshCells({force:true});

https://www.ag-grid.com/react-data-grid/view-refresh/#redraw-rows

nuypyhwy

nuypyhwy3#

我在使用React的AG Grid中遇到了同样的问题。这个概念的一个变体工作:https://stackoverflow.com/a/74856318/3622569

gridApi.forEachNode(
    (rowNode) => rowNode.setRowSelectable(isRowSelectable(rowNode))
  )

当你的状态改变时,调用类似上面的代码再次运行检查。

相关问题