如何在angular2中获取ag网格中所选行的数据?

Raj*_*ddy 10 typescript ag-grid angular

我在angular2中设置ag-grid工作正常,但我无法获得所选行的值...我的控制台窗口中没有错误......这就是我初始化网格的方式......

import {Component} from 'angular2/core';


@Component({
selector: 'aggride',
template: `

<div class="tr-card" >
<ag-grid-ng2  #agGrid of mgrid   class="ag-fresh"   rowHeight="40px"    
               [columnDefs]="columnDefs" 
                [rowData] = "rowData"
     enableCellExpressions="true"  
 enableSorting="true"  
  unSortIcon="true"
rowSelection="single"
(getSelectedRows) = "getSelectedRows()"
(onSelectionChanged) = "onSelectionChanged()"
>
</ag-grid-ng2>
</div>
`,
directives: [(<any>window).ag.grid.AgGridNg2],
})
Run Code Online (Sandbox Code Playgroud)

这个我的代码在类中获取所选值

export class AgGride {
gridOptions = {
    columnDefs: 'columnDefs',
    rowData: 'rowData',
    rowSelection: 'single',
    getSelectedRows: 'getSelectedRows',
    onSelectionChanged: 'onSelectionChanged'
};

columnDefs = [
    { headerName: "Make", field: "make", editable: true },
    { headerName: "Model", field: "model", editable: true },
    { headerName: "Color", field: "Color", editable: true }
];

rowData = [
    { make: "Toyota", model: "Celica", Color: "Red"},
    { make: "Ford", model: "Mondeo", Color: "Blue"},
    { make: "Tata", model: "X100", Color: "Blue"},
    { make: "Volvo", model: "X5", Color: "White"},      
];

mgrid: any;
onSelectionChanged() {
    var selectedRows = this.mgrid.ag.this.gridOptions.getSelectedRows();
    console.log(selectedRows);


}
}
Run Code Online (Sandbox Code Playgroud)

有人请告诉我如何纠正我的错误,以便在控制台窗口中获取所选行的数据/值...

小智 23

在模板上,例如:

(rowClicked)='onRowClicked($event)'
(cellClicked)='onCellClicked($event)'
(selectionChanged) = 'onSelectionChanged($event)'
Run Code Online (Sandbox Code Playgroud)

然后在组件类上:

onRowClicked(event: any) { console.log('row', event); }
onCellClicked(event: any) { console.log('cell', event); }
onSelectionChanged(event: any) { console.log("selection", event); }
Run Code Online (Sandbox Code Playgroud)

使用Chrome控制台检查事件对象内容.


Ano*_*ari 6

您可以使用 api.getSelectedRows() 返回选定行数据的数组。

 public getSelectedRows(){
        let rowsSelection = this.gridOptions.api.getSelectedRows();
        console.info(rowsSelection);
      }
Run Code Online (Sandbox Code Playgroud)

这对我有用。