我已经在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],
})
这是类中用于获取选定值的代码
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);
}
}
有人请告诉我如何才能纠正我的错误,以便我会得到我的控制台窗口中选定行的数据/值...
8条答案
按热度按时间mf98qq941#
在模板上,例如:
然后是组件类:
使用Chrome控制台检查事件对象内容。
ddrv8njm2#
你可以使用API()返回一个选定行数据的数组.
这对我很有效
ux6nzvsh3#
在HTML中,将
rowClicked
事件绑定到您自己的函数,如下所示。然后在TS或JS中使用如下API
当你的网格有多重选择这样的功能时,所有选中的数据都不会通过
event
参数,它总是只会是选中的行。我不鼓励
selectionChanged
事件的原因是,它总是在selectionChanged
事件之前调用rowClicked
事件。dffbzjpn4#
如果使用
onSelectionChanged()
,则可以使用api.getSelectedRows()
从onSelectionChanged
函数获取选定数据。q5lcpyga5#
首先,必须通过将
gridOptions.rowSelection
设置为"single"
或"mulitple"
来启用行选择,具体取决于您希望实现的选择行为。然后,您可以使用网格API方法
getSelectedNodes()
返回ag-Grid中所有当前选定行的列表。从每个节点提取数据非常简单,只需Map到每个节点并返回其data属性即可。下面是使用JavaScript框架时的代码:
您还可以在下面的Angular/React/Vue.js示例中看到这一点:
Angular
React
Vue.js
Vanilla JS
阅读我们的blog上的完整帖子或查看我们的documentation,了解可以使用ag-Grid实现的各种场景。
艾哈迈德·加迪尔|开发人员@ ag-Grid
jutyujz06#
ghhkc1vu7#
23c0lvtd8#
问题似乎出在
gridOptions
属性的访问上。要访问网格选项,可以使用组件模板中的ag-grid-ng2
组件引用。请尝试以下代码:
这里,
@ViewChild
装饰器用于获取对ag-grid-ng2
组件的引用,然后,您可以使用this.agGrid.api
访问网格API,并使用this.agGrid.api.getSelectedRows()
获取所选的行。