jqGrid 的 addRowData 挂起大量记录
Posted
技术标签:
【中文标题】jqGrid 的 addRowData 挂起大量记录【英文标题】:jqGrid's addRowData hangs for large number of records 【发布时间】:2012-09-16 08:53:06 【问题描述】:jqGrid 的addRowData(idColumnName, array, direction, position)
接受一个行数组并将它们插入到网格的当前页面中,忽略任何分页设置。因此,如果一个数组包含 3,000 行,则将所有 3,000 行都插入到当前页面中。
这会在大多数浏览器中引发“无响应脚本”错误。
可以使用哪些“技巧”在 jqGrid 的特定位置插入大量行(即 3,000 行)并使其遵守分页设置?
【问题讨论】:
为什么不使用分页?所以你不必一次拉这么多行? 这些行是在客户端生成的,而不是在服务器端生成的,所以服务器端的分页是不可能的。 【参考方案1】:使用addRowData
更新(或添加)大量页面是错误的方式。 jqGrid 使用内部的data
和_index
选项来保存本地数据(例如,参见here、here 和here)。因此,您可以获得关于getGridParam
的内部data
参数的引用。然后你可以以任何方式更新数组。您还应该将新添加的行的索引放在_index
中,或者调用refreshIndex(代码示例参见here)来重建_index
。在最后一种情况下,您必须拥有完整的数据源 (data
),其中也包含 id
属性。毕竟你应该重新加载网格(参见herereloadGrid
的参数)以显示更新的网格。
【讨论】:
非常感谢!我现在更新“数据”参数并重新加载网格。这样,jqGrid 尊重分页设置。以上是关于jqGrid 的 addRowData 挂起大量记录的主要内容,如果未能解决你的问题,请参考以下文章