繁体   English   中英

Kendo Grid获取选定的行并分配给局部变量

[英]Kendo Grid get selected row and assign to local variable

我正在将Kendo Grid与AngularJs和TypeScript一起使用。 我能够获取选定的行,但是由于结果似乎在不同的范围内运行,因此无法将结果分配给局部变量。

我的网格具有以下属性:

this.gridOptions = {
    dataSource: {
      data: this.items,
      pageSize: 10
    },
    selectable: 'row',
    filterable: {
      mode: 'row'
    },
    change: this.onItemSelect,
...
}

打字稿功能如下:

onItemSelect(kendoEvent : any) {
  var grid = kendoEvent.sender;
  this.selectedItem = grid.dataItem(grid.select());
}

selectedItem在我的Controller类中定义:

export class ServicePackageModalController {
private selectedItem : any;
 ...
}

问题是稍后我在另一个按钮事件中检查this.selectedItem时未定义。 我认为这是因为在Kendo Grid中调用函数时范围是不同的,所以'this'意味着其他东西,而不是我的控制器类:

handleNext() {
 console.debug(this.selectedItem) //this is undefined here?
}

所以我的问题是如何将该结果分配给控制器类,以便以后可以访问它?

我能看到解决此问题的唯一方法是将以下代码添加到我的handleNext函数中:

  var entityGrid = $("#EntitesGrid").data("kendoGrid");
  var selectedItem = entityGrid.dataItem(entityGrid.select());

您还需要在kendo-grid指令上具有一个名为EntitiesGridid属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM