AG Grid - 抑制特定列/单元格内的行选择

Kel*_*Kel 5 typescript ag-grid

使用AG Grid,我需要制作一个点击行选择的表格,但点击某些单元格不会导致选择该行。

到目前为止,我最好的想法是当鼠标悬停在非选择单元格上时禁用点击行选择。就像是:

gridOptions.onCellMouseOver = (event) => {
 if (/*cell is from non-select column*/ )
   this.gridOptions.suppressRowClickSelection = true;
}

gridOptions.onCellMouseOut = (event) => {
 if (/*cell is from non-select column*/ )
   this.gridOptions.suppressRowClickSelection = false;
}
Run Code Online (Sandbox Code Playgroud)

唯一的问题是 onCellMouseOver 和 Out 似乎没有及时触发;如果您从选择行快速移动到在未选择单元格内单击,行选择仍将触发。我有一个额外的 onCellClicked 函数,它会触发并显示 gridOptions.suppressRowClickSelection 按预期设置为 true,但是当点击速度太快时,该属性似乎没有及时设置。

如果有人知道解决这个 onMouseOver 计时问题的方法,我很想知道。或者,如果有更好的整体实现此功能的方法,我完全听得懂。

谢谢

thi*_*dot 9

这是一种方法:

this.gridOptions = {
    suppressRowClickSelection: true,
    onCellClicked: (e) => {
        if (e.column.colId !== 'name') { // cell is from non-select column
            e.node.setSelected(true);
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

基本上,我们仅在单击符合条件的单元格时手动选择行。