Kendo 网格获取选定行并分配给局部变量
Kendo Grid get selected row and assign to local variable
我正在使用带有 AngularJs 和 TypeScript 的 Kendo 网格。我能够获得选定的行,但我无法将结果分配给局部变量,因为它似乎 运行 在不同的范围内。
我的网格具有以下属性:
this.gridOptions = {
dataSource: {
data: this.items,
pageSize: 10
},
selectable: 'row',
filterable: {
mode: 'row'
},
change: this.onItemSelect,
...
}
typescript函数如下:
onItemSelect(kendoEvent : any) {
var grid = kendoEvent.sender;
this.selectedItem = grid.dataItem(grid.select());
}
selectedItem 在我的控制器中定义 class:
export class ServicePackageModalController {
private selectedItem : any;
...
}
问题是当我稍后在另一个按钮事件中检查它时 this.selectedItem 是未定义的。我假设这是因为在 Kendo 网格中调用函数时范围不同,所以 'this' 意味着其他东西而不是我的控制器 class:
handleNext() {
console.debug(this.selectedItem) //this is undefined here?
}
所以我的问题是如何将此结果分配给我的控制器 class 以便我以后可以访问它?
我认为解决此问题的唯一方法是将以下代码添加到我的 handleNext 函数中:
var entityGrid = $("#EntitesGrid").data("kendoGrid");
var selectedItem = entityGrid.dataItem(entityGrid.select());
您还需要在 kendo-grid 指令中有一个名为 EntitiesGrid
的 id
属性。
我正在使用带有 AngularJs 和 TypeScript 的 Kendo 网格。我能够获得选定的行,但我无法将结果分配给局部变量,因为它似乎 运行 在不同的范围内。
我的网格具有以下属性:
this.gridOptions = {
dataSource: {
data: this.items,
pageSize: 10
},
selectable: 'row',
filterable: {
mode: 'row'
},
change: this.onItemSelect,
...
}
typescript函数如下:
onItemSelect(kendoEvent : any) {
var grid = kendoEvent.sender;
this.selectedItem = grid.dataItem(grid.select());
}
selectedItem 在我的控制器中定义 class:
export class ServicePackageModalController {
private selectedItem : any;
...
}
问题是当我稍后在另一个按钮事件中检查它时 this.selectedItem 是未定义的。我假设这是因为在 Kendo 网格中调用函数时范围不同,所以 'this' 意味着其他东西而不是我的控制器 class:
handleNext() {
console.debug(this.selectedItem) //this is undefined here?
}
所以我的问题是如何将此结果分配给我的控制器 class 以便我以后可以访问它?
我认为解决此问题的唯一方法是将以下代码添加到我的 handleNext 函数中:
var entityGrid = $("#EntitesGrid").data("kendoGrid");
var selectedItem = entityGrid.dataItem(entityGrid.select());
您还需要在 kendo-grid 指令中有一个名为 EntitiesGrid
的 id
属性。