2012-02-20 78 views
0

我有一个Jqgrid,其数据类型为本地。我在运行时使用addRowData,setCell加载数据。每件事情都很好。请注意,我没有将整个数据加载到网格中,因此网格不知道有多少页面在那里。我的服务器返回我需要设置到网格的计数。文档说lastpage是ReadOnly?如何将最后一页(页数)设置为网格?有什么建议么。 谢谢, SarathJqGrid设置数据类型本地的最后一页

回答

2

使用addRowData方法来填充jqGrid是jqGrid中填充数据的最旧和最没有效的方法。问题很简单。如果您在页面上放置元素,则必须重新计算页面上所有其他元素的位置。它使Web浏览器的许多资源。在一步中填充整个jqGrid体更加有效,特别是对于大量的插入行。只有在很少的情况下才需要使用addRowData方法。

有效得多将使用data参数的jqGrid的,其允许与所述数据来填充网格,排序数据对应于sortnamesortorder和显示所述第一页面,rowNum定义每页的行数。另外应该不是使用afterInsertRow回调和使用gridview: true。在jqGrid的填充是最有效的情况下。

网格的页数将根据网格中的行数自动计算。只有当你使用服务器端datatype'json''xml')的客户端部分不知道的总页数等一个必须填写的输入数据totalpagerecords与主数据一起(见documentation) 。如果使用低级方法addJSONData,则可以用数据填充网格,并将totalpagerecords仍然设置为您需要的任何值。

您可以在某些情况下使用的另一种方法是datatype: 'jsonstring'。数据可以作为datastr选项的值来放置。顺便说一下,datastr的值不仅必须是JSON字符串,也可以是一个对象。

+0

感谢您的建议。我从Json开始,但不得不使用addRowData和setCell,因为我返回的数据是相当复杂的json。所以会按照下一遍建议的方式进行更改。但目前我正在使用自定义寻呼机。如果lastpage不是ReadOnly,那将会很方便。 – Sarath 2012-02-22 15:47:51

+0

@Sarath:不客气! jqGrid允许实际读取任何JSON数据。您可以使用'jsonReader'或修改'beforeProcessing' *中的JSON数据,然后*数据将由jqGrid处理。如果你使用带有函数的'jsonReader'(参见[这里](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#jsonreader_as_function))或'jsonmap',它们使用的函数可以实际读取任何JSON数据。 – Oleg 2012-02-23 16:08:46

相关问题