自动加载jqgrid并在编辑时停止

时间:2014-04-30 23:54:33

标签: jquery jqgrid

我正在尝试实现autorefresh网格,并在用户编辑/添加/搜索时停止,因此我在ondblClickRow事件中使用clearInterval(因为我使用内联编辑)。

所以,我的问题是何时何地重启de autoreload。我尝试在loadComplete事件,这似乎是beter的地方,但每次loadComplete触发setInterval()到reloadGrid,它“倍增”reloadGrid调用! 换句话说,第一次(8秒后)重新加载确定。第二次调用2次重载。第三次调用4次重载。第四次调用8次重载,依此类推......这意味着每次都有很多ajax请求!

什么是不正确的?我将不胜感激,谢谢!

这是我的代码:

var mySeconds = 10 * 1000; //seconds *1000
var myTimer;

function autoReloadGrid($grid) {
    $grid.trigger("reloadGrid", [{current:true}]);
};

var $myGrid = $("#myGrid");

$myGrid.jqGrid({ 
    //grid options here...

    ondblClickRow: function(rowId) {
        clearInterval(myTimer);     
        //editRow here...
    },

    loadComplete: function() {
        console.log('myTimer = ' + myTimer);
        myTimer = setInterval( function() { autoReloadGrid($myGrid) }, mySeconds);
    }
 })

注意:我使用console.log测试myTimer值,每次触发时都会显示不同的ID。

1 个答案:

答案 0 :(得分:0)

代码中的主要问题如下:您可以创建执行autoReloadGrid多个计时器。您只能在ondblClickRow内取消最后创建的计时器。

了解loadComplete可以多次执行非常重要:在分页,排序等方面。因此,我建议您在clearInterval之前加入setInterval来电。