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语句没有条件。 (请原谅我的错误,我不会说英语)