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