如何让jqGrid重新加载到服务器?

我们在loadonce设置为true的网格上使用jqGrid导航器重载button。

重新加载button目前不会返回到服务器以获取数据 – 我们如何获得重新加载到服务器以获取最新数据?

我相信我们可以使用beforeRefreshcallback将网格data设置为json而不是local但我不清楚如何configurationbeforeRefresh方法 – 我不太了解文档。

你不是唯一有问题的人。 我之前回答过同样的问题 。 要从服务器重新加载网格内容,您应该将datatype参数重置为原始值“json”或“xml”,然后刷新网格。 例如

 jQuery("#list").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid'); 

更新 :要调用beforeRefresh事件处理程序中的行,您可以执行以下操作

 jQuery("#list").jqGrid('navGrid','#pager', { edit:false,view:false,add:false,del:false,search:false, beforeRefresh: function(){ alert('In beforeRefresh'); grid.jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid'); } }); 

我从一个老问题修改了一个例子。 在这里,如果你点击刷新button,你可以看到代码如何工作。

更新2 : 免费的jqGrid支持一些新的选项。 reloadGrid事件支持来自Server fromServer: true参数,可用于强制从服务器重新加载数据,并且navGrid支持reloadGridOptions选项,该选项可用于指定reloadGrid在点击Refreshbutton时使用的选项。 所以上面的代码可以

 $("#list").jqGrid("navGrid", { edit: false, add: false, del: false, search: false, reloadGridOptions: { fromServer: true } }); 

顺便说一下,可以使用navOptions选项指定navGrid的默认选项(请参阅wiki文章)。 它允许编写类似的代码

 $("#link").jqGrid({ // all typical jqGrid parameters datatype: "json", // or "xml" loadonce: true, pager: true, // no empty div for page is required navOptions: { edit: false, add: false, del: false, search: false, reloadGridOptions: { fromServer: true } } }).jqGrid("navGrid"); 

我已经尝试了以下configuration,它的工作原理。

 <script type="text/javascript"> jQuery(function() { jq("#YOUR-GRID-ID").jqGrid({ ... loadonce: true, ... }); jQuery("#refresh_YOUR-GRID-ID").click(function(){ jQuery("#YOUR-GRID-ID").setGridParam({datatype: 'json'}); jQuery("#YOUR-GRID-ID").trigger("reloadGrid"); }); }); </script>