我们应用程序中的网格允许用户对多列进行排序。我现在实现了“收藏夹”功能,可以轻松记住并恢复过滤器,排序和列排序。我面临一些问题,无法正确刷新表标题中的排序图标。
代码大致类似于:
thegrid.setGridParam({
sortname: favorite_to_restore["sidx"],
sortorder: favorite_to_restore["sord"]
});
thegrid.trigger('reloadGrid');
这在后端正常工作(即,我们数据库中sql查询的排序顺序反映了收藏夹,但标头行中的图标未更新。
是否有额外的API调用,我可以更新排序图标?我查看了“ sortGrid”,但没有提供简单的答案。
您可以尝试恢复用户首选项之前创建网格。请参见为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]);
});