Как мы можем иметь глобальный Expand / Collapse для JQGrid, когда у нас есть строки, сгруппированные в каком-то поле? - PullRequest
5 голосов
/ 03 декабря 2011

Как мы можем иметь глобальный Expand / Collapse для JQGrid, когда у нас есть строки, сгруппированные по какому-либо полю?

При расширении следует развернуть все группы, а при развале все группы должны быть свернуты.

Ответы [ 3 ]

3 голосов
/ 03 декабря 2011

Вы можете установить значение по умолчанию для свойства groupCollapse параметра groupingView в jqGrid таким же образом, как и для любого другого параметра по умолчанию:

$.extend($.jgrid.defaults, {
    groupingView: {
        groupCollapse: true
    }
});

ОБНОВЛЕНО : После дополнительного объяснения в комментариях я могу себе представить, что в некоторых случаях это может иметь поведение, когда все группы будут развернуты / свернуты, если какая-либо из групп будет быть развернутым / свернутым.

var $grid = $("#list"), inOnClickGroup = false;

$grid.jqGrid({
    // ... other options
    grouping: true,
    onClickGroup: function (hid) {
        var idPrefix = this.id + "ghead_", id, i, l,
            groups = this.p.groupingView.sortnames[0];

        if (!inOnClickGroup && hid.length > idPrefix.length &&
                hid.substr(0, idPrefix.length) === idPrefix) {
            id = Number(hid.substr(idPrefix.length));
            if (typeof (groups[id]) !== "undefined") {
                inOnClickGroup = true; // set to skip recursion
                for (i = 0, l = groups.length; i < l; i++) {
                    if (i !== id) {
                        $(this).jqGrid('groupingToggle', this.id + 'ghead_' + i);
                    }
                }
                inOnClickGroup = false;
            }
        }
    }
});

См. демо .

1 голос
/ 06 декабря 2011
$('#grid-expand-collapse').change(function () {

    var idPrefix = "MyGridghead_", index, length, tarspan;
    var groups = $(options.gridElement)[0].p.groupingView.sortnames[0];

    if ($(this).is(':checked')) {

        for (index = 0, length = groups.length; index < length; index++) {

            tarspan = $("#MyGridghead_" + index + " span." + "tree-wrap-" + $(options.gridElement)[0].p.direction);
                if (!tarspan.hasClass($(options.gridElement)[0].p.groupingView.minusicon)) {
                    $(options.gridElement).jqGrid('groupingToggle', 'MyGridghead_' + index);
                }
        }
    }
    else {
        for (index = 0, length = groups.length; index < length; index++) {

            tarspan = $("#MyGridghead_" + index + " span." + "tree-wrap-" + $(options.gridElement)[0].p.direction);
            if (tarspan.hasClass($(options.gridElement)[0].p.groupingView.minusicon)) {
                $(options.gridElement).jqGrid('groupingToggle', 'MyGridghead_' + index);
            }
        }
    }

});
0 голосов
/ 10 декабря 2014
$('#jqxGrid').jqxGrid({
    groupsexpandedbydefault: true
});

работал для меня как заклинание ( источник ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...