jqgrid重新加载网格部分工作
我有一个客户端管理的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/ bug / data-parameter-not-modified-in-inline-editing / for details。
一般来说,你应该使用setGridParam
方法可能更好的set url
参数,或者只使用带有函数的postData
(有关详细信息,请参阅如何过滤jqGrid数据,而不是使用内置的搜索/filter框 )
我使用此代码解决了这个问题,但在我的情况下,问题有点不同,新添加的行未在JQGrid中显示。 因此,此代码获取Grid的更新数据,然后将其保存在本地对象中,然后将此本地对象重新分配给网格并将网格重新加载到第1页。
var grid_data = $("#Grid_ID").jqGrid('getGridParam', 'data'); $("#Grid_ID").jqGrid('clearGridData').jqGrid('setGridParam', { datatype: 'local', data: grid_data, rowNum: grid_data.length }).trigger('reloadGrid', [{ page: 1}]);
同样的事情发生在我身上。 我的问题出在返回数据的PHP文件中。 您应该validation计数记录的查询条件是否等于用于获取记录的条件。 可能用于计算记录的SQL语句没有条件。 (请原谅我的错误,我不会说英语)