【JqGrid】JqGrid關於loadonce:true後trigger("reloadGrid")無效,loadonce:false後無法翻頁的問題

簡單的來說就是在setGridParam中加上參數datatype:'json',因爲loadonce:true後,jqGrid只會加載一次數據,並把datatype改爲local。

這樣就無法完成於Server的交互通信進行數據搜索和刷新操作,因爲全部數據都是提取的本地的。

解決辦法:

1、在刷新的時候重新將datatype重新定位到json,也就是指向服務器後,jqGrid就會像服務器發起請求。

例如:

[html] view plain copy
 print?
  1. $("#contentGroupOrderTable").setGridParam({datatype:'json', page:1}).trigger('reloadGrid');  

以上方法親測可用

 

也就是說在點擊按鈕事件這你可以這樣寫:

[html] view plain copy
 print?
  1. function searchBtn() {  
  2.         $("#contentGroupOrderTable").setGridParam({datatype:'json', page:1}).trigger('reloadGrid');  
  3.         $("#contentGroupOrderTable").jqGrid('setGridParam', {page:1, postData: opGrid.getParam()}).trigger("reloadGrid");  
  4.     }  


但是這樣的兩句代碼在點擊按鈕事件時需要點擊兩次才能得到結果,故需要將兩行代碼整合成一行代碼,如下:

[html] view plain copy
 print?
  1. function searchBtn() {  
  2.         $("#contentGroupOrderTable").setGridParam({datatype:'json', page:1}).jqGrid('setGridParam', {page:1, postData: opGrid.getParam()}).trigger("reloadGrid");  
  3.     }  


2、或者在jqGrid version 4.8之後,在trigger中加上參數fromServer:true,

例如:

[html] view plain copy
 print?
  1. $("#contentGroupOrderTable").trigger("reloadGrid", { fromServer: true, page: 1 });  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章