单击标题时在JQGrid中展开组

时间:2013-10-18 15:04:57

标签: jqgrid

单击标题时,如何在jqGrid中自动展开组? (而不仅仅是+/-图标)。我希望我能用onSelectRow和'groupingToggle'做一些事情,但是当你选择“分组”行时,似乎没有调用onSelectRow。

我在https://github.com/tonytomov/jqGrid/pull/350https://github.com/tonytomov/jqGrid/pull/353看到了一些现有的拉取请求,但不确定他们发生了什么,因为我看到的行为似乎没有。

1 个答案:

答案 0 :(得分:4)

我发现这个问题很有意思,所以我创建了the demo,它演示了一个可能的需求实现。它使用以下简单代码:

var groupingView = $grid.jqGrid("getGridParam", "groupingView"),
    plusIcon = groupingView.plusicon,
    minusIcon = groupingView.minusicon;
$grid.click(function (e) {
    var $target = $(e.target),
        $groupHeader = $target.closest("tr.jqgroup");
    if ($groupHeader.length > 0) {
        if (e.target.nodeName.toLowerCase() !== "span" ||
                (!$target.hasClass(plusIcon) && !$target.hasClass(minusIcon))) {
            $(this).jqGrid("groupingToggle", $groupHeader.attr("id"));
            return false;
        }
    }
});

在上面的代码中,我注册click事件句柄,首先在句柄内验证点击是否在分组标题内。分组标题为<tr>,具有"jqgroup"类。顺便说一句,id的{​​{1}}是可以在groupingToggle方法上使用的<tr>。唯一需要验证的是,点击不在“+”或“ - ”图标上,该图标已在相应的jqGrid事件句柄中调用groupid方法。