jqGrid应用已知值无效的排序

时间:2016-02-08 00:10:47

标签: jqgrid persist columnsorting

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

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

        // Set up the jquery grid
        $("#jqGridTable").jqGrid(
            {
                // Ajax related configurations
                url: jqDataUrl,
                datatype: "json",
                mtype: "GET",
                autowidth: true,

                // Configure the columns
                colModel: columnModels,

                // Grid total width and height
                height: "100%",

                // customize jqgrid post init
                gridComplete: function()
                {
                    CRef.updateJqGridPagerIcons("jqGridTable");
                },

                // Default sorting
                sortname: "LastName",
                sortorder: "asc",
                sorttype: "text",
                sortable: true,

                jsonReader:
                {
                    root: "rows",
                    page: "page",
                    total: "total",
                    records: "records",
                    repeatitems: false,
                    userdata: "userdata"
                },

                loadComplete: function (data)
                {

                    if (boolPreferencesLoaded == false)//page level variable
                    {
                        boolPreferencesLoaded = loadPreferences(this);
                        $("#jqGridTable").trigger("reloadGrid");
                    }

                    isGridSorting(this, false);
                 }
             ...the rest of grid properties...

并且在函数调用中(位于另一个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)时,它并不完全正常。图标移动到正确的列,箭头指向正确的方向,但列中的数据不排序。

我知道有很多帖子处理类似问题,但无法获得解决方案。我想要做的事似乎很容易,但它让我疯狂。如果您回复,请评论易于理解。谢谢。

0 个答案:

没有答案