具有子网格的jqGrid的全局展开/折叠按钮

Sha*_*ggy 3 jqgrid

我正在使用带子网格配置的jqGRid来显示我的数据.我想有全局展开和折叠按钮来显示或隐藏所有子网格信息.jqGrid库是否以任何方式提供此功能?

Ole*_*leg 5

jqGrid没有"展开/折叠全部".我从旧的答案中修改了演示,演示了使用本地子网格创建网格.您可以在此处看到生成的演示:

在此输入图像描述

并且它在"subgrids"列的列标题中有额外的"+"按钮.如果单击该按钮,将展开所有子网格:

在此输入图像描述

我在演示中使用了以下代码:

var subGridOptions = $grid.jqGrid("getGridParam", "subGridOptions"),
    plusIcon = subGridOptions.plusicon,
    minusIcon = subGridOptions.minusicon,
    expandAllTitle = "Expand all subgrids",
    collapseAllTitle = "Collapse all subgrids";
$("#jqgh_" + $grid[0].id + "_subgrid")
    .html('<a style="cursor: pointer;"><span class="ui-icon ' + plusIcon +
          '" title="' + expandAllTitle + '"></span></a>')
    .click(function () {
        var $spanIcon = $(this).find(">a>span"),
            $body = $(this).closest(".ui-jqgrid-view")
                .find(">.ui-jqgrid-bdiv>div>.ui-jqgrid-btable>tbody");
        if ($spanIcon.hasClass(plusIcon)) {
            $spanIcon.removeClass(plusIcon)
                .addClass(minusIcon)
                .attr("title", collapseAllTitle);
            $body.find(">tr.jqgrow>td.sgcollapsed")
                .click();
        } else {
            $spanIcon.removeClass(minusIcon)
                .addClass(plusIcon)
                .attr("title", expandAllTitle);
            $body.find(">tr.jqgrow>td.sgexpanded")
                .click();
        }
    });
Run Code Online (Sandbox Code Playgroud)