jqGrid从已知值应用排序不起作用

jqGrid从已知值应用排序不起作用,jqgrid,persist,columnsorting,Jqgrid,Persist,Columnsorting,我有一个jqGrid,希望在加载后应用用户的排序值。这些值在jquery cookies中保存和检索。我将数据存储在cookies中,因为用户将转到另一个url并返回,这将启动页面加载,并且他们希望位于离开的同一位置 我在loadComplete中调用了一个loadPreferences函数。 请参阅下面的代码片段(我留下了几个jqrid属性以保持简短的发布) 在函数调用中(位于另一个js文件中),我有 function loadPreferences(gridId) { if (typ

我有一个jqGrid,希望在加载后应用用户的排序值。这些值在jquery cookies中保存和检索。我将数据存储在cookies中,因为用户将转到另一个url并返回,这将启动页面加载,并且他们希望位于离开的同一位置

我在loadComplete中调用了一个loadPreferences函数。 请参阅下面的代码片段(我留下了几个jqrid属性以保持简短的发布)

在函数调用中(位于另一个js文件中),我有

function loadPreferences(gridId)
{
    if (typeof $.cookie("sortCol") !== "undefined")
    {
        $(gridId).jqGrid("sortGrid", $.cookie("sortCol"), true, $.cookie("sortOrd"));
    }

    return true;
}

function isGridSorting(gridId, sorting)
{
    $.cookie("sortCol", $(gridId).jqGrid('getGridParam', 'sortname'));
    $.cookie("sortOrd", $(gridId).jqGrid('getGridParam', 'sortorder'));

    $(gridId).jqGrid('setGridParam', { postData: { isSorting: sorting } });
}
我的问题是,当我在页面加载上应用它们时(使用上面指定的jqGrid),它实际上不起作用。图标移动到正确的列,箭头指向正确的方向,但列中的数据不排序


我知道有很多帖子都在处理类似的问题,但无法找到解决方案。我想做的似乎很容易,但这让我发疯。如果您回复,请让评论易于理解。谢谢。

请在关于jqGrid的每个问题中包括您使用的jqGrid版本和jqGrid的分支。从您的代码中,不清楚您为什么在
loadComplete
中调用
loadPreferences
isGridSorting
,而不是在创建网格之前获取信息,并在创建网格期间将其用作网格的参数。此外,千万不要在
loadComplete
中使用
.trigger(“reloadGrid”)
,以确保没有无限递归。您使用no
loadonce:true
然后服务器进行排序,您首先加载错误的排序数据,然后重新加载。@Oleg我使用的是jqGrid 5.0.2。我喜欢你写的“在创建网格之前获取信息,并在创建网格期间将其用作网格的参数”。听起来正是我想要的。你有没有一篇文章显示了这一点?例如,为创建,但我开发,这是你使用的另一种fork。当前发布的免费jqGrid版本是4.12.1。我没有Guriddo jqGrid JS 5.0.2的示例。@Oleg我使用了您的示例作为指导,并且能够实现我想要的。谢谢现在我想保留用户创建的过滤器,所以我想我可以做同样的事情。我看到了另一个可能有用的帖子。根据我之前的评论,保存过滤器,排序顺序。当前页码、列顺序(可以使用列标题的拖放或columnChooser对列重新排序)、所选内容等。
function loadPreferences(gridId)
{
    if (typeof $.cookie("sortCol") !== "undefined")
    {
        $(gridId).jqGrid("sortGrid", $.cookie("sortCol"), true, $.cookie("sortOrd"));
    }

    return true;
}

function isGridSorting(gridId, sorting)
{
    $.cookie("sortCol", $(gridId).jqGrid('getGridParam', 'sortname'));
    $.cookie("sortOrd", $(gridId).jqGrid('getGridParam', 'sortorder'));

    $(gridId).jqGrid('setGridParam', { postData: { isSorting: sorting } });
}