0

我正在使用 setInterval(在 jqGrid-LoadComplete 事件中)刷新 jqgrid。如果我选择网格中的任何行,我该如何停止刷新 jqgrid。因为它取消选中我选择的行。

var timer; //Global Variable 
function populateGrid() { /*Grid population Code URL:url, <ColNames> <colModel> **********/
    loadComplete: function () {
        var myGrid = $("#<grid_name>");
        $("#cb_" + myGrid[0].id).hide();
        var resCount = $("#<grid_name>").jqGrid('getGridParam', 'reccount');
        timer = setInterval(function () {
            $("#<grid_name>").trigger("reloadGrid");
        }, 4000);
    },
    onSelectRow: function (rowid, status, e) {
        clearTimeout(timer);
    }
}
4

2 回答 2

0

根据我的理解,如果您选择一行,您希望停止刷新。您可以通过检查是否在 setInterval 中选择了一行来做到这一点。“grid.jqGrid('getGridParam','selrow')===null”

代码:

var timer; //Global Variable 
function populateGrid() { /*Grid population Code URL:url, <ColNames> <colModel> **********/
    loadComplete: function () {
        var myGrid = $("#<grid_name>");
        $("#cb_" + myGrid[0].id).hide();
        var resCount = $("#<grid_name>").jqGrid('getGridParam', 'reccount');
        timer = setInterval(function () {
            if($("#<grid_name>").jqGrid ('getGridParam', 'selrow')===null){
                   $("#<grid_name>").trigger("reloadGrid");
            }
        }, 4000);
    },
    onSelectRow: function (rowid, status, e) {
        clearTimeout(timer);
    }
}
于 2013-02-18T15:25:32.583 回答
0

为定时器声明一个全局变量

var timer;

在您的 jqGrid 加载事件中,使用刷新代码调用该函数

timer = setInterval(fn, intTimeoutInMilliseconds);

在选择行事件的代码中

onSelectRow: function(id){
    clearTimeout(timer);
}
于 2013-02-18T12:17:15.280 回答