Ag-grid行选择

时间:2018-05-17 04:13:24

标签: angular ag-grid ag-grid-ng2

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

2 个答案:

答案 0 :(得分:2)

添加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()方法,并获取最后选择的节点。

答案 1 :(得分:1)

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

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

数据:event.node.data
  是否选中: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