重新加载网格后在标题中恢复排序图标

问题描述 投票:1回答:1

我们应用程序中的网格允许用户对多列进行排序。我现在实现了“收藏夹”功能,可以轻松记住并恢复过滤器,排序和列排序。我面临一些问题,无法正确刷新表标题中的排序图标。

代码大致类似于:

thegrid.setGridParam({
  sortname: favorite_to_restore["sidx"],
  sortorder: favorite_to_restore["sord"]
  });
thegrid.trigger('reloadGrid');

这在后端正常工作(即,我们数据库中sql查询的排序顺序反映了收藏夹,但标头行中的图标未更新。

是否有额外的API调用,我可以更新排序图标?我查看了“ sortGrid”,但没有提供简单的答案。

free-jqgrid
1个回答
0
投票

您可以尝试恢复用户首选项之前创建网格。请参见为the demo创建的the answer。在这种情况下,您根本不需要重新加载网格。

或者,您可以使用网格的DOM元素的sortData方法。演示https://jsfiddle.net/OlegKi/1gpz4mat/使用以下代码进行调用:

$("#reload").click(function () {
    var $grid = $("#grid"),
        p = $grid.jqGrid("getGridParam"),
        newSortName = "amount",
        newSortOrder = "asc", // "asc", "desc"
        iCol = p.iColByName[newSortName],
        $th = $("#" + p.id + "_" + newSortName);

    $grid[0].sortData(newSortName, iCol, false, newSortOrder, $th[0]);
});
© www.soinside.com 2019 - 2024. All rights reserved.