我正在使用带内联编辑的Kendo网格让我们称之为Grid3。 Grid正在显示页面视图模型的引用属性中的项列表。当网格上的项目已保存时,我想调用一个完整的页面刷新(或刷新页面上的另外两个网格,Grid1和Grid2)。原因是当网格中的项目已更新时,其他网格中显示的值会受到影响。
有什么想法吗?
答案 0 :(得分:2)
在要刷新的网格上调用datasource.read()。
$("#grid3").kendoGrid({
dataSource : dataSource,
save: function(e) {
grid1.dataSource.read();
grid2.dataSource.read();
}
}
或者将grid.datasource.read()调用放入数据源完成中。
var dataSource = new kendo.data.DataSource({
transport: {
update: {
complete: function (jqXhr, textStatus) {
grid1.dataSource.read();
grid2.dataSource.read();
}
}
}
});
答案 1 :(得分:0)
这可以使用RequestEnd事件来完成。
Kendo Grid声明会有类似的内容:
.DataSource(datasource => datasource
.Ajax()
.Model(model => model.Id(fi => fi.Id))
.Read(read => read.Action("Buildings_ReadForecast", "Plan", new {buildingId = Model.BuildingID}))
.Events(events => events.Error("error_handler"))
.Events(events => events.RequestEnd("OnRequestEnd_Grid"))
然后创建如下的javascript方法:
function OnRequestEnd_Grid(e) {
if (e.type === "update") {
var forecastgrid = $('#ForecastGrid').data('kendoGrid');
var planGrid = $('#PlanGrid').data('kendoGrid');
planGrid.dataSource.read();
forecastgrid.dataSource.read();
}
}
就是这样!