Angularjs 如何使用新数据源重新初始化剑道网格
我在asp.NETMVC3中使用Angular和KendoUI 我正在慢慢地创建某种通用的网格来处理我将得到的各种数据响应 在前面的框架中,我们将在重新初始化之前使用Angularjs 如何使用新数据源重新初始化剑道网格,angularjs,kendo-ui,Angularjs,Kendo Ui,我在asp.NETMVC3中使用Angular和KendoUI 我正在慢慢地创建某种通用的网格来处理我将得到的各种数据响应 在前面的框架中,我们将在重新初始化之前使用$(“#mainGrid”).data(“kendoGrid”).destroy()。但是,在Angular controller中,我不知道如何使用更新的数据源(新模式和数据)销毁/重新创建网格 以下是我的通用网格函数: function initHierarchyGrid_Generic(reportType, data, r
$(“#mainGrid”).data(“kendoGrid”).destroy()
。但是,在Angular controller中,我不知道如何使用更新的数据源(新模式和数据)销毁/重新创建网格
以下是我的通用网格函数:
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;
}
谢谢你的帮助
问候,,
鲍勃
更新:
现在我传入一个refresh参数,并使用grid.setDataSource(ds);触发网格更新。
它确实更新了网格,但是我的网格现在是空的。我怀疑这是一个与数据相关的问题
在这种情况下,如果我在html中使用k-bind=“vm.mainHierGridOptions”,如下所示,那么Chrome就会出现wierd$digest迭代错误:
重新初始化数据最好通过ds.data(yournewdata)调用完成。我也不确定如何更改模式。grid.setDataSource()?@LarsHöppner-您的建议触发了网格更新,这正是我要找的。谢谢你的建议。现在我的网格当然有空数据,所以我现在处理的可能是一个与数据相关的问题。您应该得到这个问题的答案。您需要手动触发数据源的读取$(#mainGrid”).data(“kendoGrid”).dataSource.read()@JonathanBuchanan-我实际上认为上面的ds.read()就足够了。因此,我添加了您的dataSource.read(),但它没有什么不同(例如,grid显示了来自上一次网格渲染的奇怪数据对象引用,我将发布一个屏幕截图)