复选框上的多行选择和单击 ag-grid 中的行的单选

Multiple row selection on checkbox and single selection on clicking the row in ag-grid

我想在单击复选框单元格时执行多个 selection 行,如果我 单击它应该 select 该行的普通单元格,单击另一行将 select 该行。 到目前为止,无论我尝试过什么,我都能够在行上执行多个 selection select 或单个 select。如何基于列点击在同一网格中实现两者。

<ag-grid-angular  
      #agGrid 
      [columnDefs] = "columnDefs" 
      class = "ag-grid20-context content" 
      [rowData] = "rowData"
      [rowSelection]="multiple"
      [suppressRowClickSelection]= true
      [enableRangeSelection]= true
      [enableCellChangeFlash]= true
      (rowClicked)="onRowClicked($event)" 
      (cellClicked)='onCellClicked($event)'
      (gridReady)="onGridReady($event)" 
      [gridOptions]="gridOptions"
      (selectionChanged) = 'onSelectionChanged($event)'>
 </ag-grid-angular>

this.alertColumnDef =  [  
  {
    rowMultiSelectWithClick:true,
    checkboxSelection: true,
    filter: false,
    width:20
  },
  { headerName: 'Owner', field: 'customerId' },
  { headerName: 'Code', field: 'code' },
  { headerName: 'Description', field: 'description' },
  { headerName: 'Summary', field: 'summary' },
  { headerName: 'Severity', field: 'severity' },
  { headerName: 'Category', field: 'category' },
  { headerName: 'Alert Type', field: 'alertType' }
];

任何人都可以帮助实现,单击复选框时多个 selection 和单击行时单个 selection。

您可以在单击单元格时使用 setSelected 方法。 根据 ag-grid 文档:

This method takes two parameters: selected: set to true to select, false to un-select. clearSelection (optional): for selection only. If true, other nodes selection will be cleared. Use this if you do not want multi selection and want this node to be exclusively selected.

onCellClicked(params) { params.node.setSelected(true, true); }

I create an example please take a look