如果启用分页,jqgrid 多选仅选择当前页面上的行。如何让它跨页面选择行?

标签 jqgrid multi-select

我在 jqgrid 演示(http://www.trirand.com/blog/jqgrid/jqgrid.html > Advanced > Multiselect)中注意到,如果启用分页,则只选择当前页面上的行(可见)。

有关让它在多个页面上工作的任何提示。或任何其他替代解决方案?

最佳答案

我知道这个问题有点复杂,但我最近需要这个功能,并找到了我认为更干净的方法来做到这一点。

与其为每个复选框附加一个事件,不如使用 onSelectRowonSelectAll 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/

相关文章:

javascript - Jqgrid 的 Excel 类型过滤器弹出窗口

Android GridView 多选

wpf - 自定义 TreeView 以允许多选

Jquery多选

javascript - 使用 jQuery 进行多选

javascript - jqGrid 自定义过滤,内置过滤工具栏

jquery-ui - jQueryui 选项卡中的多个 jQgrid

javascript - 如何清除javascript中的jsonArray

jquery - jqGrid 启用多选,如何在选择行时关闭复选框检查

javascript - 如何使用 Angularjs Dropdown Multiselect 显示带计数的下拉值?