在Kendo-angular2-grid上的行单击事件

时间:2017-05-04 14:17:31

标签: kendo-ui-angular2

下面是我使用Kendo-Angular2开发的网格。 我需要在行上点击事件,如果我需要行信息。 我写了一个常规点击事件并尝试获取行信息,但如果我在分页中转到第二页,它就不起作用。是否有一个简单的行单击事件,它提供行信息。

plnkr: http://plnkr.co/edit/h0fVaP4NykRiILA7dyHn?p=preview

点击事件代码:

ngAfterViewInit() {
  this.renderer.listen(this.gridRef.nativeElement, "mousedown", (event) => {
    if (!event.target.matches('tbody>tr *')) {
      return;
    }

    const gridData = this.grid.data;
    const tr = event.target.closest('tr');
    const dataItem = gridData.data[tr.rowIndex + this.grid.skip];

    console.log(dataItem);
  });
}

1 个答案:

答案 0 :(得分:7)

角度模板

   <kendo-grid #gridUser
                  [kendoGridBinding]="gridData"
                  [pageSize]="10"
                  [pageable]="true"
                  [sortable]="true"
                  [selectable]="true"
                  (selectionChange)="gridUserSelectionChange(gridUser, $event)">
        <kendo-grid-column field="name" title="ID">
        </kendo-grid-column>
        <kendo-grid-column field="nameThai" title="Name">
        </kendo-grid-column>
        <kendo-grid-pdf fileName="User.pdf"></kendo-grid-pdf>
        <kendo-grid-excel fileName="User.xlsx"></kendo-grid-excel>
      </kendo-grid>

角度组件

 gridUserSelectionChange(gridUser, selection) {
     // let selectedData = gridUser.data.data[selection.index];
     const selectedData = selection.selectedRows[0].dataItem;
     console.log(selectedData);
 }