
19/11/2008, 04:18
|
Colaborador | | Fecha de Ingreso: enero-2008 Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 3 meses Puntos: 37 | |
Respuesta: Ordenar Listview Cita:
Iniciado por rulsanchez Hola amigos!! pues eso, que tengo un Listview con 3 columnas y quiero que ordene por la primera pero me lo ordena como string, y yo quiero que lo ordene como numérico, y no soy capaz de arreglarlo.
Muchisimas gracias por su interés y por leerme.
Un saludo foreros ;) Hola! mira, un truco es convertir el número a string, ordenarlo y volverlo a convertir a número.
Código:
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
Dim i As Integer
With ListView1
.SortOrder = IIf(.SortOrder = lvwAscending, lvwDescending, lvwAscending)
If ColumnHeader.Index = 1 Then ' primera columna
' convertir el número a una cadena de 20 caracteres
For i = 1 To .ListItems.Count
.ListItems.Item(i) = String(20 - Len(.ListItems.Item(i)), "0") & .ListItems.Item(i)
Next i
' ordenarlo
.Sorted = True
' restaurar formato número
For i = 1 To .ListItems.Count
.ListItems.Item(i) = Val(.ListItems.Item(i))
Next i
End If
' seleccionar la 1ª fila
.ListItems(1).Selected = True
.ListItems(1).EnsureVisible
End With
End Sub
Saludos |