简单的问题,很难找到答案:
如果我尝试以编程方式选择一行,我会使用:
$('#grid').jqGrid('setSelection', rowId);
问题是它只选择当前可见页面上的行。如果 rowId 在另一页上,则不会被选中。
更多信息:我的目标是在第一次加载页面时选择多行(在多个页面上展开)。
谢谢, 圣拉斐尔
PS:这家伙有同样的问题。还没有答案: jqgrid multiselect only selects rows on the current page, if paging is enabled. How to make it select rows across pages?答案 0 :(得分:8)
是的,jqGrid只会选择当前页面上的行。为了选择其他行,您需要维护所选ID的列表并手动选择它们。
要执行此操作,您需要在loadComplete
事件中添加代码以搜索当前页面并选择以下任意行:
var ids = grid.jqGrid('getDataIDs');
for (var i = 0; i < ids.length; i++){
if (selected[ids[i]] === true ){
grid.setSelection(ids[i], false);
}
}
您还需要在onSelectRow
和onSelectAll
事件中添加代码,以便在用户选择/取消选择行时调整selected
的内容:
onSelectRow: function(rowid, status){
selected[rowid] = status;
setSelectedDeviceCount();
},
onSelectAll: function(rowids, status){
for (var i = 0; i < rowids.length; i++){
selected[rowids[i]] = status;
}
}
这有帮助吗?
答案 1 :(得分:0)
请看这个: https://stackoverflow.com/a/24941828/136219
了解实现目标的方法。