簡單的來說就是在setGridParam中加上參數datatype:'json'
,因爲loadonce:true後,jqGrid只會加載一次數據,並把datatype改爲local。
這樣就無法完成於Server的交互通信進行數據搜索和刷新操作,因爲全部數據都是提取的本地的。
解決辦法:
1、在刷新的時候重新將datatype重新定位到json,也就是指向服務器後,jqGrid就會像服務器發起請求。
例如:
-
$("#contentGroupOrderTable").setGridParam({datatype:'json', page:1}).trigger('reloadGrid');
以上方法親測可用
也就是說在點擊按鈕事件這你可以這樣寫:
-
function searchBtn() {
-
$("#contentGroupOrderTable").setGridParam({datatype:'json', page:1}).trigger('reloadGrid');
-
$("#contentGroupOrderTable").jqGrid('setGridParam', {page:1, postData: opGrid.getParam()}).trigger("reloadGrid");
-
}
但是這樣的兩句代碼在點擊按鈕事件時需要點擊兩次才能得到結果,故需要將兩行代碼整合成一行代碼,如下:
-
function searchBtn() {
-
$("#contentGroupOrderTable").setGridParam({datatype:'json', page:1}).jqGrid('setGridParam', {page:1, postData: opGrid.getParam()}).trigger("reloadGrid");
-
}
2、或者在jqGrid version 4.8之後,在trigger中加上參數fromServer:true,
例如:
-
$("#contentGroupOrderTable").trigger("reloadGrid", { fromServer: true, page: 1 });