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

Mar*_*eon 11 jquery jqgrid navigator

我们在网格上使用loadonce设置为true 的jqGrid导航器重新加载按钮.

重新加载按钮当前不会返回到服务器以获取数据 - 我们如何才能将重新加载到服务器以获取最新数据?

我相信我们可以利用beforeRefresh回调设置网格datajson代替local,但我不清楚如何,即使配置beforeRefresh方法-我真的不明白的文档.

Ole*_*leg 22

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

jQuery("#list").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
Run Code Online (Sandbox Code Playgroud)

更新:要调用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');
    }
  });
Run Code Online (Sandbox Code Playgroud)

我从旧问题修改了一个例子.在这里,如果单击刷新按钮,您可以看到代码如何工作.

更新2:免费jqGrid支持一些新选项.reloadGridevent支持fromServer: true可用于强制从服务器重新加载数据的参数,并navGrid支持reloadGridOptions可用于指定reloadGrid单击Refresh按钮时使用的选项的选项.所以上面的代码可以

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

顺便说一下,可以使用navOptionsjqGrid的选项来指定默认选项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");
Run Code Online (Sandbox Code Playgroud)