从Angular 2+中的Kendo网格获取所选行的列表

时间:2018-05-22 18:06:04

标签: javascript angular kendo-ui kendo-grid

我在Angular 4应用程序中使用了Kendo for Angular网格。我有可选的设置为'true',我的网格中的一列使用kendo-grid-checkbox-column,而selectionChange设置为一个将event参数作为参数的函数。

在我的selectionChange处理程序中,无论选择了多少行,event参数上的selectedRows数组都只有一个值。

谢谢, 詹姆斯

我的代码:

    onGridSelectionChange(event: SelectionEvent) {
        debugger;
        console.log(event.selectedRows.length); // this is always 1
    };
<kendo-grid *ngIf='!isLoading' style="width:100%; height: inherit;" class="ag-fresh" [data]='gridView' [selectable]="true"
            [pageSize]='pageSize' [skip]='skip' [pageable]='true' (pageChange)='onGridPageChange($event)'
            (selectionChange)='onGridSelectionChange($event)'>

3 个答案:

答案 0 :(得分:0)

看看下面的例子:

EXAMPLE

所有选定的键都保存在一个集合(mySelection)中,我们也可以通过它来操作以编程方式选择/取消选择行。您可以保留整个对象,而不是保留键,而是代表所选的数据项(将kendoGridSelectBy绑定到将返回eventArgs.dataItem的函数)。

答案 1 :(得分:0)

您正在使用错误的网格事件。您应该使用selectedKeysChange

<kendo-grid ...
  [kendoGridSelectBy]="'id'"
  (selectedKeysChange)="selectedKeysChange($event)">
  ...
</kendo-grid>

此外,您必须设置用于选择行的字段(kendoGridSelectBy)。在此示例中,它是ID。

获取选择:

selectedKeysChange(rows: number[]) {
  console.log(rows);
}

答案 2 :(得分:0)

将[selectable] =“ true”更改为:

[selectable] =“ {已启用:true,模式:'multiple'}”

当我添加模式:'multiple'时,我能够获取列表。