Visual Basic.NET - COMO ORDENAR un LISTVIEW al pinchar su ENCABEZADO?

 
Vista:

COMO ORDENAR un LISTVIEW al pinchar su ENCABEZADO?

Publicado por MUMO (73 intervenciones) el 14/02/2003 17:22:18
Estoy Usando el control Listview para mostrar datos.
Este listview tiene 4 columnas (rut-nombre-edad-telefono)

¿ Como puedo hacer para ordenar el listview al pinchar el encabezado de una de estas columnas ?


Por favor ayudenme...................Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:COMO ORDENAR un LISTVIEW al pinchar su ENCABEZA

Publicado por Toni (36 intervenciones) el 18/02/2003 20:05:53
Tienes un ejemplo en las páginas de "el guille"

http://guille.costasol.net
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COMO ORDENAR un LISTVIEW al pinchar su ENCABEZA

Publicado por vedevian (2 intervenciones) el 09/03/2023 12:08:59
ese enlace no existe mas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

COMO ORDENAR un LISTVIEW al pinchar su ENCABEZADO?

Publicado por Raúl Guillermo Mejía Tenorio (31 intervenciones) el 13/09/2023 00:31:59
Lo puedes hacer de la siguiente manera.
En el evento ColumnClick de tu listview, este es mi ejemplo

Ordenar por Número

Private Sub lstNomina_ColumnClick(sender As Object, e As ColumnClickEventArgs) Handles lstNomina.ColumnClick
Select Case e.Column
Case 1
Call OrderByNumero()
Case 2
Call OrderByNombre()
End Select
End Sub

Private Sub OrderByNumero()
lstNomina.Items.Clear()
lstNomina.Sorting = False
Try
Using cnx As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dSn)
cnx.Open()
sSql = "SELECT * FROM NOMINA ORDER BY NUMEMP"
Dim cmd As New OleDbCommand(sSql, cnx)
cmd.CommandType = CommandType.Text
Dim rstNomina As OleDbDataReader = cmd.ExecuteReader()
While rstNomina.Read
Dim itemlist As New ListViewItem '(Convert.ToString(row.Item("NUMEMP")))
itemlist.SubItems.Add(rstNomina(0)) 'NUMEMP
itemlist.SubItems.Add(rstNomina(1)) 'NOMEMP
itemlist.SubItems.Add(rstNomina(2)) 'FECHA
itemlist.SubItems.Add(Format(rstNomina(3), "##")) 'DIAS
itemlist.SubItems.Add(Format(rstNomina(4), "##,###.##")) 'SUELDO
itemlist.SubItems.Add(Format(rstNomina(5), "#.#")) 'HORAS EXTRAS
itemlist.SubItems.Add(Format(rstNomina(6), "##,###.##")) 'IMPORTE
itemlist.SubItems.Add(Format(rstNomina(7), "##")) 'DIAS DE VACACIONES
itemlist.SubItems.Add(Format(rstNomina(8), "##,###.##")) 'IMPORTE DE VACACIONES
itemlist.SubItems.Add(Format(rstNomina(9), "##,###.##")) 'PRIMA VACACIONAL
itemlist.SubItems.Add(Format(rstNomina(10), "##,###.##")) 'INCENTIVO
itemlist.SubItems.Add(Format(rstNomina(11), "##,###.##")) 'PERCEPCIONES
itemlist.SubItems.Add(Format(rstNomina(12), "##,###.##")) 'AHORRO
itemlist.SubItems.Add(Format(rstNomina(13), "##,###.##")) 'PAGO
itemlist.SubItems.Add(Format(rstNomina(14), "##,###.##")) 'INTERES
itemlist.SubItems.Add(Format(rstNomina(15), "##,###.##")) 'INFONAVIT
itemlist.SubItems.Add(Format(rstNomina(16), "##,###.##")) 'FONACOT
itemlist.SubItems.Add(Format(rstNomina(17), "##,###.##")) 'OTROS
itemlist.SubItems.Add(Format(rstNomina(18), "##,###.##")) 'COMEDOR
itemlist.SubItems.Add(Format(rstNomina(19), "##,###.##")) 'VALES
itemlist.SubItems.Add(Format(rstNomina(20), "##,###.##")) 'PENSION
itemlist.SubItems.Add(Format(rstNomina(21), "##,###.##")) 'DEDUCCIONES
itemlist.SubItems.Add(Format(rstNomina(22), "##,###.##")) 'TOTAL
itemlist.SubItems.Add(Format(rstNomina(23), "##,###.##")) 'TRANSFERENCIA
itemlist.SubItems.Add(Format(rstNomina(24), "##,###.##")) 'DEPOSITO
itemlist.SubItems.Add(Format(rstNomina(25), "##,###.##")) 'SOBRE
itemlist.SubItems.Add(rstNomina(26)) 'SEMANA
itemlist.SubItems.Add(rstNomina(27)) 'STATUS
lstNomina.Items.Add(itemlist)
End While
rstNomina.Close()
End Using
Catch ex As Exception
MessageBox.Show("Error : " + ex.Message + "", "¡Ocurrio el siguiente Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub


Ordenar por nombre

Private Sub OrderByNombre()
lstNomina.Items.Clear()
lstNomina.Sorting = False
Try
Using cnx As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dSn)
cnx.Open()
sSql = "SELECT * FROM NOMINA ORDER BY NOMEMP"
Dim cmd As New OleDbCommand(sSql, cnx)
cmd.CommandType = CommandType.Text
Dim rstNomina As OleDbDataReader = cmd.ExecuteReader()
While rstNomina.Read
Dim itemlist As New ListViewItem '(Convert.ToString(row.Item("NUMEMP")))
itemlist.SubItems.Add(rstNomina(0)) 'NUMEMP
itemlist.SubItems.Add(rstNomina(1)) 'NOMEMP
itemlist.SubItems.Add(rstNomina(2)) 'FECHA
itemlist.SubItems.Add(Format(rstNomina(3), "##")) 'DIAS
itemlist.SubItems.Add(Format(rstNomina(4), "##,###.##")) 'SUELDO
itemlist.SubItems.Add(Format(rstNomina(5), "#.#")) 'HORAS EXTRAS
itemlist.SubItems.Add(Format(rstNomina(6), "##,###.##")) 'IMPORTE
itemlist.SubItems.Add(Format(rstNomina(7), "##")) 'DIAS DE VACACIONES
itemlist.SubItems.Add(Format(rstNomina(8), "##,###.##")) 'IMPORTE DE VACACIONES
itemlist.SubItems.Add(Format(rstNomina(9), "##,###.##")) 'PRIMA VACACIONAL
itemlist.SubItems.Add(Format(rstNomina(10), "##,###.##")) 'INCENTIVO
itemlist.SubItems.Add(Format(rstNomina(11), "##,###.##")) 'PERCEPCIONES
itemlist.SubItems.Add(Format(rstNomina(12), "##,###.##")) 'AHORRO
itemlist.SubItems.Add(Format(rstNomina(13), "##,###.##")) 'PAGO
itemlist.SubItems.Add(Format(rstNomina(14), "##,###.##")) 'INTERES
itemlist.SubItems.Add(Format(rstNomina(15), "##,###.##")) 'INFONAVIT
itemlist.SubItems.Add(Format(rstNomina(16), "##,###.##")) 'FONACOT
itemlist.SubItems.Add(Format(rstNomina(17), "##,###.##")) 'OTROS
itemlist.SubItems.Add(Format(rstNomina(18), "##,###.##")) 'COMEDOR
itemlist.SubItems.Add(Format(rstNomina(19), "##,###.##")) 'VALES
itemlist.SubItems.Add(Format(rstNomina(20), "##,###.##")) 'PENSION
itemlist.SubItems.Add(Format(rstNomina(21), "##,###.##")) 'DEDUCCIONES
itemlist.SubItems.Add(Format(rstNomina(22), "##,###.##")) 'TOTAL
itemlist.SubItems.Add(Format(rstNomina(23), "##,###.##")) 'TRANSFERENCIA
itemlist.SubItems.Add(Format(rstNomina(24), "##,###.##")) 'DEPOSITO
itemlist.SubItems.Add(Format(rstNomina(25), "##,###.##")) 'SOBRE
itemlist.SubItems.Add(rstNomina(26)) 'SEMANA
itemlist.SubItems.Add(rstNomina(27)) 'STATUS
lstNomina.Items.Add(itemlist)
End While
rstNomina.Close()
End Using
Catch ex As Exception
MessageBox.Show("Error : " + ex.Message + "", "¡Ocurrio el siguiente Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

Espero haber enviado a tiempo la respuesta ya que hasta el día de hoy entre al foro.

Saludos desde México.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar