我注意到在 jqgrid 演示(http://www.trirand.com/blog/jqgrid/jqgrid.html > Advanced > Multiselect)中,如果启用了分页,则仅选择当前页面上的行(可见)。
关于让它在多个页面上工作的任何提示。或任何其他替代解决方案?
我注意到在 jqgrid 演示(http://www.trirand.com/blog/jqgrid/jqgrid.html > Advanced > Multiselect)中,如果启用了分页,则仅选择当前页面上的行(可见)。
关于让它在多个页面上工作的任何提示。或任何其他替代解决方案?
我知道这个问题有点尘土飞扬,但我最近需要这个功能,并找到了我认为更干净的方法。
为什么不使用jqGrid的onSelectRow和事件,而不是为每个复选框附加一个事件?onSelectAll选择一行后,检查我们的选定行列表是否包含该行(基于 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);
}
},
....
)};
希望这可以帮助其他人寻找解决方案。
我假设您想在一页中选择一些行,然后转到另一页,也许选择更多行,并保留所有这些选择。
您必须处理每个复选框上的选择事件。将事件处理程序附加到each $("#cb_my_grid")并保留一组选定项。然后,当您需要数据时(可能是提交页面时),您可以提交数组中的值。