0

我有一个表格,里面有我想要排序和过滤的数据。

我实现了一个自动刷新功能,每次都从服务器加载数据,但我想恢复排序和过滤选项,我可以这样做。

我使用trigger("reloadGrid",[{current:true}]),将数据类型设置为 json ,以便在函数中从服务器检索数据,并在带有 aautorefresh的方法中使用排序和过滤选项,如其他 stackoverflow 问题中所述。loadcompletesetTimeout

这行得通,但是每次刷新网格时,我都会在一秒钟内看到带有完整数据的网格,没有排序也没有过滤,然后数据在本地排序/过滤。

鉴于我想要 5 秒的自动刷新,有没有办法可以阻止该方法在reloadGrid有服务器请求但等待刷新显示时显示完整数据?reloadloadComplete

函数中使用的重载autorefresh

$("#MyGrid").jqGrid("setGridParam",{url:"list.php", datatype:"json"}).trigger("reloadGrid",[{current:true}]);

模型 :

jQuery("#MyGrid").jqGrid({
  url:'list.php',  
  datatype: "json",
  loadonce:true,
  ...
  loadComplete: function(){
    if ($("#MyGrid").jqGrid("getGridParam", "datatype") !== "local") {
      setTimeout(function () {
        $("#MyGrid").jqGrid("setGridParam",{search:srch,postData:post});
      })
    };
  }
4

1 回答 1

0

您可以使用 setInterval JavaScript 函数进行自动刷新

var grid = $("#list"),
intervalId = setInterval(
    function() {
        grid.trigger("reloadGrid",[{current:true}]);
    },
    60000); // Every 1 min

要停止网格重新加载,您可以使用另外一个 JavaScript 函数:

clearInterval(intervalId);

在“reloadGrid”中,我使用了鲜为人知的参数 current:true,这里描述了它来保留网格中的当前选择。

您可以按给定的时间间隔查看 Reload Jqgrid

于 2013-05-30T13:10:36.980 回答