jqGrid的“loadonce:true”和“datatype:json”不相处

时间:2011-07-06 19:19:30

标签: jquery jquery-plugins jqgrid

我的应用程序中有一个网格。为了填充数据,用户填写表格并提交。服务器使用包含 all 网格结果的JSON数据进行响应(服务器不再被命中)。

就jqGrid而言,设置为loadonce: truedatatype: "json"。但这些并不能共同发挥作用。

我一直在做的 - 这似乎是一种糟糕的做法 - 如下所示,它会更改网格设置,加载数据并更改网格的设置。

$("#myGrid").jqGrid("setGridParam", {datatype: "json", loadonce: true});
$("#myGrid")[0].addJSONData(data);
$("#myGrid").jqGrid("setGridParam", {datatype: "local", loadonce: true});

还有另一种更好的方式吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

如果您设置了正确的url网格,并且网格将填充服务器数据(有或没有loadonce:true),那么要从服务器重新加载数据,您可以执行以下内容:

$("#myGrid").jqGrid("setGridParam",{datatype:"json"}).trigger("reloadGrid");

$("#myGrid").jqGrid("setGridParam",{datatype:"json"}).trigger("reloadGrid",[{page:1}]);

答案 1 :(得分:1)

我刚刚使用afterSubmit事件解决了同样的问题,用于创建/编辑/删除操作。这是问题和答案:

Can't refresh jqgrid with loadonce: true

答案 2 :(得分:1)

我遇到了同样的问题,我的解决方案是:

$("#myGrid").jqGrid('setGridParam', { url: 'MyNewUrl', datatype:"json" });
$("#myGrid").trigger("reloadGrid");

$("#myGrid").jqGrid('setGridParam', { url: 'MyNewUrl', datatype:"json"}).trigger("reloadGrid");

我希望它适合你。