/ / jqgrid - rozbaliť všetko / zbaliť všetko v zoskupení - jquery, jqgrid

jqgrid - rozbaliť všetko / zbaliť všetko v skupine - jquery, jqgrid

Existuje spôsob, ako môžeme implementovať rozšírenievšetky / zbalenie všetkých funkcií pre zoskupenie funkcie v jqgrid? Keďže chápem nastavenie groupingCollapse: true, zbaliť dáta, ale rád by som to urobil dynamicky, môže to byť kliknutím na +/- ikony umiestnené v mriežke. Ďakujeme vopred za akékoľvek návrhy alebo pomoc ...

odpovede:

1 pre odpoveď č. 1

Myslím, že na vašu otázku nájdete odpoveď stará odpoveď, Hlavná myšlienka odpovede je použiť sortnames[0] vlastnosť parametra groupingView jqGrid. Je to pole, ktoré prvky sa dajú použiť na zostrojenie identifikátorov skupinových hlavičiek a ktoré je možné použiť groupingToggle metóda zbaliť alebo rozbaliť záhlavie skupiny. Týmto spôsobom môžete rozšíriť alebo zbaliť všetky skupiny.


1 pre odpoveď č. 2

Toto je špecifické pre konkrétnu verziu jqgrid a rozširuje všetky vrstvy, ale je to tak krátke a sladké, že sa jednoducho nemôžem brániť vysielaniu.

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

0 pre odpoveď č. 3

S odpoveďou / návrhom Olegu a Jqgrid4.4.1, tu je to, čo som urobil.To funguje, keď chcete rozbaliť / zbaliť všetky riadky po kliknutí na niektoré tlačidlo ...

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);
}
}
}
}