我有一个包含以下信息的jqgrid:
$("#Table").jqGrid({
url: 'u.json,
loadonce:true,
colNames: msd.rise.columnDisplayNames,
colModel: msd.rise.colModelDef,
gridview: true,
toppager: false,
sortname: 'sd',
sortorder: 'desc',
sortable:true,
loadComplete: function(){
$("#Table").setGridParam({datatype:'json', page:1}).trigger('reloadGrid');
}
});
客户端排序不起作用。我根据this回答提出loadonce:true
和$("#Table").setGridParam({datatype:'json', page:1}).trigger('reloadGrid');
。但它仍然无效。有什么想法吗?
答案 0 :(得分:0)
您目前使用的loadComplete
代码错误。您绝不应在.trigger('reloadGrid')
内使用无条件loadComplete
。此外,在重新加载之前设置datatype
到'json'
会使从服务器重新加载数据,但是您需要 local 重新加载以应用排序。正确的代码将类似于the anwer中的示例:
loadComplete: function () {
var $self = $(this);
if ($self.jqGrid("getGridParam", "datatype") === "json") {
setTimeout(function () {
$self.trigger("reloadGrid"); // Call to fix client-side sorting
}, 50);
}
}
在完成从服务器的初始加载后,代码只会重新加载 。