如何让jqGrid重新加载到服务器?
我们在loadonce
设置为true的网格上使用jqGrid导航器重载button。
重新加载button目前不会返回到服务器以获取数据 – 我们如何获得重新加载到服务器以获取最新数据?
我相信我们可以使用beforeRefresh
callback将网格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>