/ / jqgrid - розгорнути все / згорнути всі в групі - jquery, jqgrid

jqgrid - розгорнути все / колапс у групі - jquery, jqgrid

Чи є спосіб, який ми можемо реалізувати, розширитивсе / згорнути всі функції для групування функцій у jqgrid? Як я розумію, налаштування groupingCollapse: true, згортає дані, але я хотів би зробити його динамічним, може бути натисканням +/- значків, розміщених у сітці. Заздалегідь дякую за будь-які пропозиції / допомогу ...

Відповіді:

1 для відповіді № 1

Я думаю, що ви знайдете відповідь на своє запитання стара відповідь. Головною ідеєю відповіді є використання sortnames[0] властивість параметра groupingView з jqGrid. Це масив, елементи якого можуть бути використані для побудови ідентифікаторів заголовків групування, які можна використовувати groupingToggle метод колапсу або розширення заголовка групи. У спосіб ви можете розгорнути або згорнути всі групи.


1 для відповіді № 2

Це специфічно для конкретної версії jqgrid, і він розширює всі шари, але це так короткий і солодкий, я просто не можу протистояти розміщенню його.

function expandAll() {
$("#myGrid .ui-icon-circlesmall-plus").trigger("click");
}

0 для відповіді № 3

Олег з відповіддю / пропозицією та Jqgrid4.4.1, ось що я зробив. Це працює, коли ви хочете розгорнути / згорнути всі рядки натисканням однієї кнопки ...

function expandCollapseGroups(expandAll) {
var $grid = $("#grid");
var idPrefix =$grid[0].id + "ghead_0_", trspans;
var groups =$grid[0].p.groupingView.groups;
if ($grid[0].p.grouping) {
for (var index = 0; index < groups.length; index++) {
if (expandAll) {
trspans = $("#" + idPrefix + index + " span.tree-wrap-" +$grid[0].p.direction + "." +$grid[0].p.groupingView.plusicon);
} else {
trspans = $("#" + idPrefix + index + " span.tree-wrap-" +$grid[0].p.direction + "." +$grid[0].p.groupingView.minusicon);
}
if (trspans.length > 0) {
$grid.jqGrid("groupingToggle", idPrefix + index);
}
}
}
}