我在Asp.Net MVC中使用Kendo UI网格。
我在文档准备功能中调用了以下事件。
function RefreshGrid() {
setInterval(function () {
$("#MediaBatchGrid").data("kendoGrid").dataSource.read();
$(".k-loading-image").hide();
}, 5000);
}
在向服务器发出请求时调用上述函数。整个数据将绑定在Kendo网格UI中。因此,问题在于,Grid闪烁,甚至保留了Grid中的现有值。 我担心的是,如何在客户端停止这种闪烁? 如果新数据与现有值不同,那么仅在数据绑定事件发生时该怎么办,否则返回&无需在网格中进行任何UI更改
答案 0 :(得分:0)
我为此苦了一段时间,终于找到了简单的解决方案。
我们应该为HTML中的数据绑定定义一个事件。即
.Events(x => x.DataBinding("Grid_DataBinding"))
jQuery代码:
Grid_DataBinding = function (e) {
var displayedData = $("#Grid").data().kendoGrid.dataSource.view();// this is to get Existing values from Grid
var displayedDataAsJSON = JSON.stringify(displayedData);
// then convert it as JSON
var newData = e.sender._data;// to get new data coming from Server
var newDataAsJSON = JSON.stringify(newData);// convert it too as JSON
if (newDataAsJSON === displayedDataAsJSON) {// Equal check
e.preventDefault();// if both are equal, just prevent data binding event
$(".k-loading-mask").hide();// this is to avoid grid flickering, hiding loader too
}
}