农业网格行选择

Ag-grid Row selection

在单元格选择的帮助下选择 ag-grid 的行时使用:this.gridOptions.rowMultiSelectWithClick = true ; 是否可以仅访问最后选择的行进行计算并保持先前​​选择的行状态不变。

当然,您必须为此使用 onRowSelected 事件,您将在其中获得所需的数据作为 event 参数。

onRowSelected(event) {
  console.log("row " + event.node.data + " selected = " + event.node.selected);
}

The data: event.node.data
Selected or not: event.node.selected

<ag-grid-angular
  .....
  [rowSelection]="rowSelection"
  (rowSelected)="onRowSelected($event)"
  [rowMultiSelectWithClick]="true"
  (selectionChanged)="onSelectionChanged($event)"
  ></ag-grid-angular>

这是现场示例:Plunk - ag-grid rowMultiSelectWithClick


更新

您可以使用gridApi 获取最后选择的节点。当您取消选择一行时,这甚至会起作用。它会为我们提供在取消选择最新行之前选择的最后一行。

getLastSelectedNode(){
  let rows = this.gridApi.getSelectedRows();
  if(rows.length > 0)
    console.log(rows[rows.length - 1]);
  else
    console.log('No rows selected');
}

Updated Plunk

除了 Paritosh 提到的内容之外,您还可以监听 rowSelected 事件并维护一个节点数组。

<ag-grid-angular
   [rowSelection]="rowSelection"
   (rowSelected)="onRowSelected($event)"
   [rowMultiSelectWithClick]="true"
   (selectionChanged)="onSelectionChanged($event)"></ag-grid-angular>
selectedNodes: RowNode[];     

onRowSelected(event) {
   if(event.node.selected) {
      this.selectedNodes.push(event.node);
   }
}

getLastItem() {
   return this.selectedNodes[this.selectedNodes.length - 1];
} 

您可以根据自己的需要随时调用getLastItem()方法获取最后选择的节点。