我正在尝试实现自动刷新网格,并在用户编辑/添加/搜索时停止,因此我在ondblClickRow事件中使用clearInterval(因为我使用了内联编辑)。
因此,我的问题是何时何地重新启动de autoreload。我尝试在loadComplete事件中尝试,但这似乎是个好地方,但是每次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。
代码中的主要问题如下:您可以创建多个执行计时器autoReloadGrid
。您只能取消中最后创建的计时器ondblClickRow
。
重要的是要了解它loadComplete
可以多次执行:分页,排序等。因此,我建议您包括clearInterval
before的电话setInterval
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句