JsGrid - 在刷新时保持排序顺序

JsGrid - Keep sorted order on refresh

我在 jsGrid 中有一个每 5 秒刷新一次的网格。虽然过滤很好并且保持刷新状态,但对 tables 进行排序却没有。一旦刷新命中 table 自动返回到其未排序的默认顺序。

有没有办法让 JsGrid 在刷新时保持排序?

这是我的代码:

$("#jsGrid").jsGrid({
  height: "300px",
  width: "100%",
  filtering: true,
  sorting: true,
  paging: true,
  autoload: true,
  pageSize: 10,

  controller: {
    loadData: function(filter) {
      var data = $.Deferred();

      $.ajax({
        type: "GET",
        url: BASE_URL,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
           //SUCCESS MESSAGE
        },
        error: function(textStatus, errorThrown) {
          //ERROR MESSAGE
        }
      }).then(function(result) {
        result = $.grep(result,
          function(item) {
            return //FILTERED RESULTS;
          });

        data.resolve(result);
      });

      return data.promise();
    }
  },

  //SAMPLE FIELDS
  fields: [{
      name: "Name",
      type: "text",
      width: 150
    },
    {
      name: "Age",
      type: "number",
      width: 50
    },
    {
      name: "Address",
      type: "text",
      width: 200
    },
    {
      name: "Country",
      type: "select",
    }
  ]
});

setInterval(function() {
  //Refreshes grid only after 5 seconds
  $("#jsGrid").jsGrid("loadData");
}, 5000);

找到答案了!昨天有人在 GitHub 上发布了一个线程,寻找与我相同的东西:

Source

答案在我的 setInterval 函数中调用 .done 函数并在其中调用 jsGrid 排序器。 :

setInterval(function() {
  //Refreshes grid only after 5 seconds

     $('#jsGrid').jsGrid("loadData").done(function () {
            var sorting = $("#jsGrid").jsGrid("getSorting");
            $("#jsGrid").jsGrid("sort", sorting);

}, 5000);