jqGrid:对本地数据进行排序会清除网格

时间:2012-08-18 16:49:25

标签: javascript jqgrid

我在这里发现了类似但不完全相同的问题;他们发布的答案都没有解决这个问题。

我使用addJSONData加载了本地数据。单击列标题进行排序时,将擦除网格。 Web控制台/ firebug中没有错误。稍后调用addJSONData时添加的数据至少按所选列排序。

我的配置:

jQuery('#attributes').jqGrid({
    sortable:true,
    datatype:"local",
    colNames: cols,
    colModel: colmods,
    cmTemplate: {width:155, align:"left"},
    multiselct: false,
    shrinkToFit:false,
    caption: "Node Attributes",
    scroll: true,
    footerrow: true,
    userDataOnFooter: true,
    rowNum: -1
});

我唯一的想法是保存数据onSortCol并在loadComplete中重新加载。我不太喜欢那样。我尝试了rowNum: 9007199254740992loadonce: true和其他人的各种组合。

我尝试过jqGrid版本4.2.0和4.4.0(再次支持rowNum: -1)。

编辑:清除数据的行是sortData函数中的emptyRows位:

        if(ts.p.scroll) {
            var sscroll = ts.grid.bDiv.scrollLeft;
            emptyRows.call(ts, true, false);
            ts.grid.hDiv.scrollLeft = sscroll;
        }

似乎应该在发生这种情况之前保存数据,但我不熟悉此代码以了解数据实际存在的位置。

2 个答案:

答案 0 :(得分:0)

我是jqGRid的新手(我3天前才开始使用它...)但是,如果你使用的是本地,那么你是否还需要指定loadonce:true才能进行排序和分页工作? / p>

答案 1 :(得分:0)

我有类似的问题。我偶然发现了一个问题。设置loadonce:true后,如果你点击寻呼机中的刷新按钮然后尝试排序,它就可以正常工作。

所以我通过执行以下操作强制点击刷新按钮:$(".ui-icon-refresh").trigger('click');

我在onClose事件上运行了这个,因为这符合我的要求。您可以在此处查看我对此问题的完整说明:Make 'Search' remote and everything else (sorting, pagination, etc) local in jqGrid