Ag-Grid Выбор строки - PullRequest
0 голосов
/ 17 мая 2018

При выборе строк ag-grid с помощью выбора ячеек с помощью: this.gridOptions.rowMultiSelectWithClick = true; Можно ли получить доступ к последней выбранной строке только для вычислений и сохранить состояние ранее выбранных строк без изменений.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

В дополнение к тому, что упомянул 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() в любое время в соответствии с вашими требованиями иполучить последний выбранный узел.

0 голосов
/ 17 мая 2018

Конечно, вы должны использовать событие onRowSelected для которого вы получите необходимые данные в качестве аргумента event.

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

data: event.node.данные
Выбрано или нет: event.node.selected

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

Вот живой пример: Plunk - строка ag-gridMultiSelectWithClick


Обновление

Вы можете использовать gridApi, чтобы затем получить последний выбранный узел.Это даже будет работать, когда вы отменяете выбор строки.Это даст нам последнюю строку, которая была выбрана перед отменой выбора последней строки.

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

Обновлен Plunk

...