【问题标题】:jqGrid: reload data from json-stringjqGrid:从 json-string 重新加载数据
【发布时间】:2013-03-17 14:03:33
【问题描述】:

我知道,SO 上存在几个类似的问题,但尽管如此,我还是创建了这个问题,因为:
- 我还是不明白:)
- 我想创建一个可能会更完整地涵盖问题的主题。

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

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

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

ps
对我来说也很重要,该网格具有用userdata 定义的摘要行。

DOWNLOAD SETUP

【问题讨论】:

    标签: javascript jqgrid


    【解决方案1】:

    很少需要使用datatype 的其他值,例如"local""json""jsonp""xml"。大多数其他datatype 的用法可以很容易地替换为树的主要数据类型。如果您使用"jsonstring""xmlstring""clientSide",则在加载数据后datatype更改为"local"(例如,参见源代码的the line)。所以如果你真的需要使用datatype: "jsonstring",你可以通过使用来修复重新加载

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

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

    1. 不包括和pager 选项。默认值pager: ""已经OK了。
    2. 包括rowNum 参数和一些足够大的值,如rowNum: 10000rowNum 的默认值为 20。因此,如果您不想只显示输入数据的前 20 行,则应增加 rowNum 的值。

    最后一个建议:您应该将sorttype: "integer"(请参阅the documentation)包含在包含整数值的列中。如果用户单击列标题,它将修复数据排序。您也应该考虑使用列模板(请参阅the old answer)。

    【讨论】:

      猜你喜欢
      • 2011-09-11
      • 2011-11-07
      • 1970-01-01
      • 2015-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多