我在这里发现了类似但不完全相同的问题;他们发布的答案都没有解决这个问题。
我使用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: 9007199254740992
,loadonce: 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;
}
似乎应该在发生这种情况之前保存数据,但我不熟悉此代码以了解数据实际存在的位置。
答案 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