在页面中,我有一个表单和一个JQGrid。表单用于输入特定过滤器。因此该页面的Javascript包含一个重新加载数据以填充JQGrid的函数。 JQGrid有loadonce: true
,因此刷新按钮不会执行任何操作。我需要让它调用我现有的函数。有可能吗?
答案 0 :(得分:2)
如果我理解正确,那么您的问题就存在,因为loadonce: true
选项会将原始datatype
("json"
或"xml"
)更改为"local"
。它允许使用本地分页,排序和数据过滤。在分页过程中,网格的过滤和排序将被重新加载,因此本地重新加载确实有意义。
如果您需要从服务器重新加载网格,则应首先恢复datatype
的原始值,然后重新加载。
因此,如果您可以beforeRefresh
使用navGrid
回调重置datatype
:
$("#grid").jqGrid("navGrid", "#pager", {
beforeRefresh: function () {
$(this).jqGrid("setGridParam", {datatype: "json"});
}
});
如果您使用free jqGrid,则可以使用fromServer: true
的新reloadGrid
选项,并且可以使用reloadGridOptions
和navGrid
$("#grid").jqGrid({
// standard jqGrid options
navOptions: {
// default options of navGrid
reloadGridOptions: {fromServer: true}
}
}).jqGrid("navGrid");
选项}。代码就像
datatype:"json"
它适用于datatype:"xml"
或{{1}}。
答案 1 :(得分:1)
一个简单的修复:
loadonce: false
实际上,将此设置为true将不会用于您指定的其他目的。