Ag-grid isRowSelectable 条件不激活

Posted

技术标签:

【中文标题】Ag-grid isRowSelectable 条件不激活【英文标题】:Ag-grid isRowSelectable conditional not activating 【发布时间】:2021-11-08 22:40:22 【问题描述】:

我们有一个通过内置复选框功能选择行的 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 时,复选框不会出现。如果我在开发工具中挂断点,isRowSelectable 代码似乎没有被命中。

任何建议将不胜感激。

干杯,

-约翰

【问题讨论】:

【参考方案1】:

你可以试试这个,看看它是否有效?

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/

【讨论】:

嗨 Sharath,实际上,Shaune 和我确实尝试利用 applyTransaction(update) 函数来解决此问题,但它不起作用。干杯,-约翰【参考方案2】:

使用refreshCells

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

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

【讨论】:

试一试,不幸的是,复选框仍然没有重新出现。所有行数据都按预期更新,只是似乎没有按条件点击该复选框。

以上是关于Ag-grid isRowSelectable 条件不激活的主要内容,如果未能解决你的问题,请参考以下文章

Ag-Grid:一旦列超出容器大小,调整列宽并显示水平滚动条

ag-grid 单元格下拉树控件滚动条不可用问题

如何强制 ag-grid 滚动到选定/突出显示的行位置

仅使用 Ag-grid 中标题上的复选框从当前页面中选择行

如何在单个 ag-grid 单元格中显示两列值?

AG-GRID 只删除前 27 个节点