我在 jqgrid 演示(http://www.trirand.com/blog/jqgrid/jqgrid.html > Advanced > Multiselect)中注意到,如果启用分页,则只选择当前页面上的行(可见)。
有关让它在多个页面上工作的任何提示。或任何其他替代解决方案?
最佳答案
我知道这个问题有点复杂,但我最近需要这个功能,并找到了我认为更干净的方法来做到这一点。
与其为每个复选框附加一个事件,不如使用 onSelectRow
和 onSelectAll
jqGrid 的事件?选择行时,请检查我们的选定行列表是否包含此行(基于ID)。如果它不存在并且已被选中,则将其添加到列表中,如果它存在且不再被选中,则将其删除。如果选择了所有行,则遍历它们。
var $grid = jQuery("#myGrid");
var updateIdsOfSelectedRows = function (id, isSelected) {
var contains = idsOfSelectedRows.contains(id);
if (!isSelected && contains) {
for(var i=0; i<idsOfSelectedRows.length; i++) {
if(idsOfSelectedRows[i] == id) {
idsOfSelectedRows.splice(i, 1);
break;
}
}
}
else if (!contains) {
idsOfSelectedRows.push(id);
}
};
$grid.jqGrid({
....
onSelectRow: function(rowid, status){
updateIdsOfSelectedRows(rowid, status);
},
onSelectAll: function (aRowids, status) {
var i, count, id;
for (i = 0, count = aRowids.length; i < count; i++) {
id = aRowids[i];
updateIdsOfSelectedRows(id, status);
}
},
....
)};
希望这可以帮助其他人寻找解决方案。
关于如果启用分页,jqgrid 多选仅选择当前页面上的行。如何让它跨页面选择行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4710780/