我正在使用Angular和Kendo UI在asp.net mvc3中工作。
我正在慢慢地创建某种通用网格来处理我将要获得的各种数据响应。
在之前的框架中,我们会在重新初始化之前使用$("#mainGrid").data("kendoGrid").destroy()
。但是,在Angular控制器中,我无法弄清楚如何使用更新的DataSource(新架构和数据)销毁/重新创建我的网格。
这是我的通用网格功能:
function initHierarchyGrid_Generic(reportType, data, refresh) {
var myModel = gridHierarchyService.getDataSourceModel(reportType, data);
var myColumns = gridHierarchyService.getColumnDefs(reportType, data);
var myData = gridHierarchyService.getDataRows(reportType, data);
var ds = new kendo.data.DataSource({
schema: {
model: myModel
},
pageSize: 5,
data: myData
});
ds.read();
vm.mainHierGridOptions = {
dataSource: ds,
pageable: true,
detailInit: detailInit, // detailInit() determines nested levels.
columns: myColumns
};
if (refresh) { // NEW LOGIC TO REFRESH THE DATASOURCE (as per suggestion)
var grid = $('#mainGrid').data("kendoGrid");
grid.setDataSource(ds);
}
return vm.mainHierGridOptions;
}
感谢您的帮助。
的问候, 鲍勃
更新: 我现在传入一个刷新参数,并使用grid.setDataSource(ds);触发网格更新。 它确实更新了网格,但我的网格现在是空的。我怀疑这是一个与数据相关的问题。
在这种情况下如果我在html中使用k-bind =“vm.mainHierGridOptions”,如下所示,那么Chrome会出现错误的$ digest迭代错误:
答案 0 :(得分:1)
最好使用ds.data(yournewdata)调用重新初始化数据。我不确定如何更改架构。