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
gran aportacion, gracias
Saludos !!
Hola, muy bueno el proyecto, lo estoy haciendo en .net pero me da error en esta linea de codigo
C#:
Subro.Controls.DataGridViewGrouper grupperListaEmpleados = new Subro.Controls.DataGridViewGrouper();
.NET:
Private grupperListaEmpleados As Subro.Controls.DataGridViewGrouper = New Subro.Controls.DataGridViewGrouper()
lo pudiste solucionar? me sale igual el mismo error
si, se puede agregar.
quiero el programa
En este repositorio de Github lo puedes descargar: https://github.com/luismacalderon/group-dgview