我有一个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)时,它并不完全正常。图标移动到正确的列,箭头指向正确的方向,但列中的数据不排序。
我知道有很多帖子处理类似问题,但无法获得解决方案。我想要做的事似乎很容易,但它让我疯狂。如果您回复,请评论易于理解。谢谢。