因为你使用loadonce:true
,然后您在服务器上准备数据。在服务器端,您可以决定必须选择哪一行。在服务器端,您还可以轻松计算所选行将在哪个页面上。所选行和所选页面的 ID,例如,您可以将其包含为userdata http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#user_data。因此从服务器发送的数据可能如下所示:
{
"total": 5,
"page": 1,
"records": 107,
"rows": [
...
],
"userdata": {
"page": 3,
"selId": 24
}
}
代替loadComplete
你可以做以下事情
loadComplete: function(data) {
if (jQuery("#list").getGridParam('datatype') === "json") {
// data.userdata is the same as jQuery("#list").getGridParam('userData');
var userdata = jQuery("#list").getGridParam('userData');
var curPage = jQuery("#list").getGridParam('page'); // is always 1
if (curPage !== userdata.page) {
setTimeout(function(){
jQuery("#list").setGridParam(
{ page: userdata.page }).trigger("reloadGrid");
jQuery("#list").setSelection (userdata.selId, true);
},100);
}
else {
jQuery("#list").setSelection (userdata.selId, true);
}
}
}
您可以看到的工作示例http://www.ok-soft-gmbh.com/jqGrid/DataToSelect.htm http://www.ok-soft-gmbh.com/jqGrid/DataToSelect.htm and http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect.htm http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect.htm.
UPDATE: 免费 jqGrid https://github.com/free-jqgrid/jqGrid支持multiPageSelection:true
从版本 4.10.0 开始的选项。该选项允许非常轻松地设置网格中多行的选择(并且工作速度非常快,因为它直接设置选择状态在创建身体的过程中的网格)。看答案 https://stackoverflow.com/a/33021115/315935 and the demo http://www.ok-soft-gmbh.com/jqGrid/OK/multiPageSelection.htm and 4.10.0 的自述文件 https://github.com/free-jqgrid/jqGrid/blob/v4.10.0/README.md#main-new-features-and-improvements-implemented-in-the-version-4100.