jqGrid:从json-string重新加载数据

时间:2013-03-17 14:03:33

标签: javascript jqgrid

我知道,SO上存在几个类似的问题,但尽管如此我创建了这个问题是因为:
- 我仍然没有得到它:) - 我想创建一个可能更完整地解决问题的主题。

我以简化的方式重建了我的生产设置,可以通过以下链接获得。 简而言之 - 我有简单的jqGrid,它使用jsonstring作为dataTypedatastr使用JSON数据。然后解雇这个:

$("#grid").setGridParam({'datastr': myNewData}).trigger('reloadGrid');

我试图在网格中重新加载数据,但它不起作用。 我错过了什么?

PS
此外,对我来说,网格具有使用userdata定义的摘要行。

DOWNLOAD SETUP

1 个答案:

答案 0 :(得分:1)

您很少需要使用datatype,其他值为"local""json""jsonp""xml"。其他datatype的大多数用法都可以轻松替换为树主数据类型。如果您使用"jsonstring""xmlstring""clientSide",那么加载数据后datatype更改为"local" (请参阅{例如,{3}}源代码。因此,如果您确实需要使用datatype: "jsonstring",则可以按使用情况修复重新加载

$("#grid").setGridParam({
    datastr: myNewData,
    datatype: "jsonstring" // !!! reset datatype
}).trigger("reloadGrid");

此外,我可以看到您使用了jqGrid的pager: false选项。这是错误的选择。如果您不需要使用本地数据分页,我建议您

  1. 不包含pager选项。默认值pager: ""已经确定。
  2. 包含rowNum参数,其中包含足够大的值rowNum: 10000rowNum的默认值为20.因此,如果您不想仅显示输入数据的前20行,则应增加rowNum的值。
  3. 最后一条建议:您应该将sorttype: "integer"(请参阅the line)包含在包含整数值的列中。如果用户单击列标题,它将修复数据排序。您也应该考虑使用列模板(请参阅the documentation)。