我们在网格上使用JQGrid Navigator重新加载按钮 loadonce 设置为true。

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

我相信我们可以使用 beforeRefresh 回调以设置网格 datajson 代替 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');
    }
  });

我修改了AM旧问题的例子。 这里 如果您单击“刷新”按钮,则可以看到现场代码的工作方式。

更新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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top