2011-12-03 5 views

Respuesta

3

Puede establecer el valor predeterminado de la propiedad groupCollapse del parámetro groupingView de jqGrid de la misma manera como se establece cualquier otro parámetro por defecto:

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

ACTUALIZADO: Después de la explicación adicional en los comentarios que puedo Me imagino que en algunos casos puede tener el comportamiento cuando todos los grupos se expandirán/colapsarán si alguno de los grupos se expandirá/colapsará.

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

Ver the demo.

+0

Este no es mi requisito, quiero colapsar/expandir para todos los grupos. La opción que ha sugerido es colapsar en cada nivel de grupo. –

+0

@Suresh: ¿Podría explicar más claro lo que quiere? Las imágenes pueden ser útiles. jqGrid admite solo un nivel de agrupación, por lo que no entiendo dónde hay diferencia entre "colapso para todos los grupos" y "colapso en cada nivel de grupo". – Oleg

+0

gracias por la respuesta. Digamos, por ejemplo, al agrupar por fecha, obtengo tres grupos durante 3 días. Para cada uno de los grupos, podemos expandir y contraer para ver u ocultar filas en ese grupo. Ahora mi requisito es: necesito expandir y colapsar. Al expandir esto, todos los grupos deberían expandirse y al colapsarse, todos los grupos deberían colapsarse. Espero que entiendas lo que quiero decir. De esta forma, ayuda al usuario a evitar expandir cada grupo para ver todos los resultados. –

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

trabajó como un encanto para mí (source).

+2

La pregunta se refería a JQGrid no a JQXgrid. –

Cuestiones relacionadas