用于Angular 2 Grid dataBound事件的Kendo UI

dpd*_*nev 11 kendo-ui kendo-ui-angular2 angular

有没有办法捕获网格的dataBound事件,类似于我们在jndo版本的Kendo UI中所拥有的事件.我需要在数据加载到网格后执行操作.

有一个dataStateChange事件,但在初始加载期间不会触发此事件.

目前,我正在使用超时功能来延迟执行,但这不是一个永久可靠的解决方案.

谢谢.

mch*_*l18 5

我认为为此使用 Angulars 内置工具就足够了。

首先,建议为网格创建一个新组件:

网格组件.html

<kendo-grid [data]="tableData" #myTable>
  <kendo-grid-column field="ListItem" title="List Item">
      <ng-template kendoGridCellTemplate let-dataItem>
        {{ dataItem.title }}
      </ng-template>  
  </kendo-grid-column>
</kendo-grid>
Run Code Online (Sandbox Code Playgroud)

ngAfterViewInitAngular的生命周期钩子会在 init 之后触发:

grid.component.ts

import { AfterViewInit, Component, ElementRef, Input, ViewChild } from '@angular/core';

@Component({
  selector: 'app-table',
  templateUrl: `./table.component.html`,
})
export class TableComponent implements AfterViewInit  {
  @ViewChild('myTable') myTable: ElementRef;

  public ngAfterViewInit() {
    console.log('loaded', this.myTable);
  }

  public tableData = [
    { title: 'Number 1', id: 'one'},
    { title: 'Number 2', id: 'two'},
  ];
}
Run Code Online (Sandbox Code Playgroud)

这是一个 Stackblitz

如果数组的内容发生变化,我们希望选择AfterContentChecked,它会在每次类成员发生变化detectChanges并被调用后运行,也就是说,在组件的生命周期中重新渲染内容时。