客户端排序不起作用

时间:2014-12-09 05:24:39

标签: jqgrid

我有一个包含以下信息的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');。但它仍然无效。有什么想法吗?

1 个答案:

答案 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);
    }
}

在完成从服务器的初始加载后,代码只会重新加载