2018 年 6 月更新:
Ag-Grid 的 API 已更改。关键的变化是需要e.api.gridOptionsWrapper.gridOptions.suppressRowClickSelection
从网格onCellFocused
的事件中改变
这是一个完整的解决方案,它使用可重用的单元格渲染器在不会触发行选择的行末尾创建操作或按钮。此解决方案假定您使用的是 React 版本的 ag-grid 并且您使用的是自定义单元格渲染器。
// class fields
disableClickSelectionRenderers = ['rowActionRenderer'];
// columns defs
...
{headerName: '', field: 'someButton',
suppressMenu: true, suppressFilter: true, suppressSorting: true,
suppressMovable: true,
suppressNavigable: true, suppressResize: true,
cellRenderer: 'rowActionRenderer',
cellRendererParams: {
icon: <i className="fa fa-pencil"/>,
onClick: (e, props) => {
// do the action
},
},
},
render() {
<AgGridReact
columnDefs={...}
// ... other properties
onCellFocused={e => {
if (e.column && this.disableClickSelectionRenderers.includes(e.column.colDef.cellRenderer)) {
e.api.gridOptionsWrapper.gridOptions.suppressRowClickSelection = true;
}
else {
e.api.gridOptionsWrapper.gridOptions.suppressRowClickSelection = false;
}
}}
}