Skip to main content

Crear grupos en DataGridView


Existen muchos frameworks o librerías en el mercado que nos permiten crear grupos en listados, pero la mayoría de estos son de pago, y casi siempre implica cambiar totalmente nuestra lógica de trabajo para adaptar nuestro código a éstas.

En esta ocasión quiero presentarte una clase que añade esta funcionalidad al ya existente DataGridView, sin necesidad de instalar nada.

Tiene ciertas limitantes, pero para la mayoría de los casos funciona.

Una vez agregada la referencia de la librería a nuestro proyecto bastará con implementar el código mostrado.

Declaración global en el formulario:

Subro.Controls.DataGridViewGrouper grupperListaEmpleados = new Subro.Controls.DataGridViewGrouper();

Este código prepara la clase grupper para la agrupación, se hace una sola vez en el evento de carga del formulario:

grupperListaEmpleados = new Subro.Controls.DataGridViewGrouper(dataGridView1);

Función que se llamará cuando deseemos agrupar la lista:

private void AgruparListaEmpleados(bool Valor)
{
  if (Valor == true)
  {
    grupperListaEmpleados.RemoveGrouping();
    grupperListaEmpleados.SetGroupOn("Pais");
    grupperListaEmpleados.Options.ShowGroupName = false;
    grupperListaEmpleados.Options.GroupSortOrder = System.Windows.Forms.SortOrder.None;
    dataGridView1.Columns["Pais"].Visible = false;

   dataGridView1.RowHeadersVisible = false;
   dataGridView1.ClearSelection();
   }
   else
   {
     grupperListaEmpleados.RemoveGrouping();
     dataGridView1.RowHeadersVisible = true;
     dataGridView1.Columns["Pais"].Visible = true;
   }
}

Descargar el proyecto de ejemplo completo del siguiente enlace:

https://github.com/luismacalderon/group-dgview


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Master Solutions