0

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

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

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

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

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

下载设置

4

1 回答 1

1

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

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

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

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

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

于 2013-03-17T16:17:54.723 回答