如何在Kendo UI Grid的onDataBound事件中检查是否更改了现有行值?

时间:2019-02-05 07:15:32

标签: jquery kendo-ui kendo-grid kendo-asp.net-mvc

我在Asp.Net MVC中使用Kendo UI网格。

我在文档准备功能中调用了以下事件。

function RefreshGrid() {
        setInterval(function () {
            $("#MediaBatchGrid").data("kendoGrid").dataSource.read();
            $(".k-loading-image").hide();
        }, 5000);
    }

在向服务器发出请求时调用上述函数。整个数据将绑定在Kendo网格UI中。因此,问题在于,Grid闪烁,甚至保留了Grid中的现有值。 我担心的是,如何在客户端停止这种闪烁? 如果新数据与现有值不同,那么仅在数据绑定事件发生时该怎么办,否则返回&无需在网格中进行任何UI更改

1 个答案:

答案 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


    }


}