loadonce
我们在设置为 true 的网格上使用 jqGrid 导航器重新加载按钮。
重新加载按钮当前不会返回服务器获取数据 - 我们如何让重新加载去服务器获取最新数据?
我相信我们可以使用beforeRefresh
回调将网格设置data
为json
,local
但我不清楚如何配置该beforeRefresh
方法 - 我不太了解文档。
loadonce
我们在设置为 true 的网格上使用 jqGrid 导航器重新加载按钮。
重新加载按钮当前不会返回服务器获取数据 - 我们如何让重新加载去服务器获取最新数据?
我相信我们可以使用beforeRefresh
回调将网格设置data
为json
,local
但我不清楚如何配置该beforeRefresh
方法 - 我不太了解文档。
你不是唯一有问题的人。我之前回答过同样的问题。要从服务器重新加载网格内容,您应该将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');
}
});
我从一个老问题修改了一个例子。在这里,如果您单击刷新按钮,您可以实时查看代码的工作方式。
更新 2:免费 jqGrid支持一些新选项。reloadGrid
事件支持fromServer: true
可用于强制从服务器重新加载数据的参数,并navGrid
支持reloadGridOptions
可用于指定reloadGrid
单击刷新按钮时使用的选项的选项。所以上面的代码可能是
$("#list").jqGrid("navGrid", {
edit: false,
add: false,
del: false,
search: false,
reloadGridOptions: { fromServer: true }
});
顺便说一句,可以使用navOptions
jqGrid 的选项来指定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");
我已经尝试了以下配置并且它有效。
<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>