2011-12-03 13 views

risposta

3

È possibile impostare il valore predefinito della groupCollapse di proprietà del parametro groupingView del jqGrid nello stesso modo come si imposta qualsiasi altro parametro predefinito:

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

AGGIORNATO: Dopo ulteriore spiegazione nei commenti che posso Immagino che in alcuni casi possa avere il comportamento quando tutti i gruppi verranno espansi/compressi se qualcuno dei gruppi verrà espanso/compresso.

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

Vedere the demo.

+0

Questo non è il mio requisito, voglio comprimere/espandere per tutti i gruppi. L'opzione che hai suggerito è per il collasso a ogni livello di gruppo. –

+0

@Suresh: potresti spiegare più chiaramente cosa vuoi. Le foto possono essere utili. jqGrid supporta solo un livello di raggruppamento, quindi non capisco dove sono le differenze tra "collasso per tutti i gruppi" e "collasso a livello di ogni gruppo". – Oleg

+0

grazie per la risposta. Ad esempio, nel raggruppamento per data, ottengo tre gruppi per 3 giorni. Per ciascun gruppo possiamo espandere e comprimere per vedere/nascondere le righe in quel gruppo. Ora il mio requisito è che ho bisogno di un ampliamento e di un collasso - espandendo questo, tutti i gruppi dovrebbero essere espansi e al collasso, tutti i gruppi dovrebbero essere compressi. Spero tu abbia capito cosa intendo. In questo modo, aiuta l'utente ad evitare di espandere ciascun gruppo per vedere tutti i risultati. –

1
$('#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); 
      } 
     } 
    } 

}); 
-3
$('#jqxGrid').jqxGrid({ 
    groupsexpandedbydefault: true 
}); 

funzionato come un fascino per me (source).

+2

Domanda riguardava JQGrid non JQXgrid. –

Problemi correlati