我有一个客户端管理的jqgrid,当我触发一些外部事件时我会重新加载.
当我用更多数据重新加载网格时,一切都很好但是当我用较少的数据重新加载它时,行数是不正确的.
当我用更多数据重新加载网格时,一切都很好但是当我用较少的数据重新加载它时,行数是不正确的.
例如,当网格中当前有100行并且我用200重新加载它时,导航栏会显示200条记录.如果其中有200行并且我用25行刷新它,它仍然在导航栏中显示200而不是25.刷新网格的代码如下所示:
$("#list2").trigger("GridUnload"); $.ajax({ url: 'http://xxx,dataType: 'json',async: false,success: function(data) { gridData = data; }
});
$("#list2").setGridParam({ data: gridData }); $("#list2").trigger("reloadGrid");
我不认为问题出在导航栏上,因为我可以清楚地点击下一页并查看添加行.
谢谢
解决方法
尝试更换
$("#list2")[0].refreshIndex(); $("#list2").trigger("reloadGrid");
同
var g = $("#list2"); g.setGridParam({ data: gridData }); g[0].refreshIndex(); g.trigger("reloadGrid");
有关详细信息,请参阅http://www.trirand.com/blog/?page_id=393/help/losing-edited-cell-data-after-paging/和http://www.trirand.com/blog/?page_id=393/bugs/data-parameter-are-not-modified-during-inline-editing/.
一般来说,你应该使用setGridParam方法可能更好的set url参数,或者只使用带函数的postData(详见How to filter the jqGrid data NOT using the built in search/filter box)