首页 > 解决方案 > jqGrid 免费 multiPageSelect 多选清除 selrrrow

问题描述

我有一个带有多选和多页选择的 jqgrid。我的用户可以在 ajax 页面调用之间的不同页面上选择不同的行。我已向寻呼机添加了一个自定义按钮和方法,以清除所选行,而不管页面如何:

        $("#grid").navButtonAdd('#pager', {
        caption: "Clear",
        title: "Clear Selection",
        buttonicon: "ui-icon-circle-close",
        onClickButton: function() {

            $("#grid").setGridParam({ multiPageSelection: false });
            $("#grid").resetSelection();
            $("#grid").setGridParam({ multiPageSelection: true});
        },      
        position: "first"
    });

您可以看到我必须将 multiPageSelection 设置为 false,重置选择,然后将 multiPageSelection 设置回 true 以使其正常工作。

我试过了

$("#grid").resetSelection();

然后是以下之一:

$("#grid").setGridParam({ selarrrow: ""});
$("#grid").setGridParam({ selarrrow: []});
$("#grid").setGridParam({ selarrrow: {}});
$("#grid").setGridParam({ selarrrow: null});

他们都没有工作。要么他们产生了错误,要么命令被忽略并且 selrrrow 仍然包含值。

如果 multiPageSelection 为真,resetSelection 仅清除当前页面上的值。

是否有一个 jqgrid 命令来重置选择而不考虑 multiPageSelect?

标签: jqgrid

解决方案


如果我正确理解您的问题,那么您只是使用错误的方式来重置数组参数selarrrow(或其他参数,如data)。最简单的方法是使用 ofgetGridParam而不是setGridParam. getGridParam 不带附加参数的调用返回jqGrid 的所有内部参数的引用,您将很容易替换任何数组参数:

var $grid = $("#grid"), p = $grid.jqGrid("getGridParam"});
p.selarrrow = [];

或者,您可以使用

$("#grid").jqGrid("setGridParam", { selarrrow: [] }, true);

用第二个参数true。最后一种方式更具可读性,但任何使用 的setGridParam都比使用getGridParam.


推荐阅读