Foros del Web » Programación para mayores de 30 ;) » .NET »

Ordenar DataGridView por 2 columnas

Estas en el tema de Ordenar DataGridView por 2 columnas en el foro de .NET en Foros del Web. Hola, Necesito ordenar un datagridview que ya tengo lleno por 2 columnas, por ejemplo primero por codigo cliente y luego los que tengan el mismo ...
  #1 (permalink)  
Antiguo 03/06/2014, 12:11
 
Fecha de Ingreso: noviembre-2007
Mensajes: 97
Antigüedad: 16 años, 5 meses
Puntos: 0
Pregunta Ordenar DataGridView por 2 columnas

Hola,

Necesito ordenar un datagridview que ya tengo lleno por 2 columnas, por ejemplo primero por codigo cliente y luego los que tengan el mismo codigo cliente ordenados por fecha.

Para que veais como lo creo os paso el trozo de codigo. En resumen paso los seleccionados del datagridview1 al 4. No creo ningun dataset ni nada parecido.


Código:
For i = 0 To (total - 1)

                If DataGridView1.Rows(i).Cells(0).Value = True Then  ' si la fila està seleccionada

                   

                        DataGridView4.Rows.Add(DataGridView1.Rows(i).Cells(0).Value, DataGridView1.Rows(i).Cells(1).Value, DataGridView1.Rows(i).Cells(2).Value, DataGridView1.Rows(i).Cells(3).Value, DataGridView1.Rows(i).Cells(4).Value)
                   
                End If

            Next

Muchas gracias por vuestra ayuda

Muchas gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 03/06/2014, 12:24
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 7 meses
Puntos: 58
Respuesta: Ordenar DataGridView por 2 columnas

Hola que tal, bueno no se como lo tengas codificado, pero se me ocurren 2 formas:

1.- Si seleccionas una fila, validas si es diferente cliente, de ser asi ejecutas una consulta en el server y te traigas la información ordenada como la necesitas ( Contras: Lanzas una consulta cada que cambie la información )

2.- Por medio de Linq, tengas toda la información en listas y la consulta la ejecutas sobre las listas llenas que tengas, con eso solo tiras 1 consulta al server y obtienes toda la información ( Contras: Si es mucha información, tardara en ejecutarse el llenado de las listas )
__________________
Your Code as a Crime Scene...
  #3 (permalink)  
Antiguo 03/06/2014, 12:29
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 7 meses
Puntos: 58
Respuesta: Ordenar DataGridView por 2 columnas

Hola que tal, bueno no se como lo tengas codificado, pero se me ocurren 2 formas:

1.- Si seleccionas una fila, validas si es diferente cliente, de ser asi ejecutas una consulta en el server y te traigas la información ordenada como la necesitas ( Contras: Lanzas una consulta cada que cambie la información )

2.- Por medio de Linq, tengas toda la información en listas y la consulta la ejecutas sobre las listas llenas que tengas, con eso solo tiras 1 consulta al server y obtienes toda la información ( Contras: Si es mucha información, tardara en ejecutarse el llenado de las listas )
__________________
Your Code as a Crime Scene...
  #4 (permalink)  
Antiguo 03/06/2014, 12:31
 
Fecha de Ingreso: noviembre-2007
Mensajes: 97
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Ordenar DataGridView por 2 columnas

Me podrías poner un ejemplo sencillito de como hacerlo con Linq? es que no lo utilice nunca y no acabo de entender a que te refieres.

Gracias

Cita:
Iniciado por drako_darpan Ver Mensaje
Hola que tal, bueno no se como lo tengas codificado, pero se me ocurren 2 formas:

1.- Si seleccionas una fila, validas si es diferente cliente, de ser asi ejecutas una consulta en el server y te traigas la información ordenada como la necesitas ( Contras: Lanzas una consulta cada que cambie la información )

2.- Por medio de Linq, tengas toda la información en listas y la consulta la ejecutas sobre las listas llenas que tengas, con eso solo tiras 1 consulta al server y obtienes toda la información ( Contras: Si es mucha información, tardara en ejecutarse el llenado de las listas )
  #5 (permalink)  
Antiguo 04/06/2014, 15:30
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 7 meses
Puntos: 58
Respuesta: Ordenar DataGridView por 2 columnas

Hola que tal, bueno tratare de explicarte lo mejor que pueda

1.- Declaras una o varias listas ( List<EstructList> alias = new List<EstructList>();) // No entrare en mucho detalle sobre esto )

2.- Llenas la lista con la consulta que ocupas
__________________
Your Code as a Crime Scene...
  #6 (permalink)  
Antiguo 04/06/2014, 15:37
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 7 meses
Puntos: 58
Respuesta: Ordenar DataGridView por 2 columnas

Disculpa, pero no me dejaba poner el codigo completo, me imagion por tener codigo tipo SQL y por seguridad de la pagina : Va de nuevo

Hola que tal, bueno tratare de explicarte lo mejor que pueda

1.- Declaras una o varias listas ( List<EstructList> alias = new List<EstructList>();) // No entrare en mucho detalle sobre esto )

2.- Llenas la lista con la consulta que ocupas

Inicia lo bueno

3.- Declaras una variable y pones la consulta que ocupas.
Ejemplo:

Código C#:
Ver original
  1. // Consulta sencilla
  2. var Query = (fr om alias in lista_previamente_creada
  3.              o rderby alias.campo_ordenar // Opcional
  4.              sel ect alias).D istinct();
  5.  
  6. // Con un join de listas
  7. var Query = ( fr om alias1 in lista_previamente_creada_1
  8.               j oin alias2 in lista_previamente_creada_2 on alias1.campo_en_comun equals alias2.campo_en_comun
  9.               in to a
  10.               fr om b in a.DefaultIfEmpty(new Estructura_lista_2())
  11.               s elect new
  12.               {
  13.                 alias1.campo1,
  14.                 alias1.campo2,
  15.                 b.campo3,
  16.                 b.campo4
  17.               }
  18.             ).Distinct();

4.- Ya que tienes la información en tu variable ( Query en este caso ), la barres con un foreach.
Ejemplo:

Código C#:
Ver original
  1. foreach (var Mostrar in Query)
  2. {
  3.     Grid.Rows.Add(1);
  4.  
  5.     Grid.Rows[nRenglon].Cells["1"].Value = Mostrar.campo1.ToString();
  6.     Grid.Rows[nRenglon].Cells["2"].Value = Mostrar.campo2.ToString();
  7. }

Ocupas tener en la cabecera el using System.Linq;
Linq solo funciona con Framework 3.5

Espero haberte ayudado
__________________
Your Code as a Crime Scene...

Etiquetas: columnas, datagridview
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:52.