Ordenar un listview

17/10/2006 - 10:14 por Vmrincon | Informe spam
Hola amigos:

Estoy trabajando con un listview en el cual tengo una serie de filas
las cuales tienen un checkbox que puede estar a TRUE o FALSE, me
gustaria hacer dos cosas; la primera que los campos estuvieran
ordenados por checkeados y no checkeados y a continuación se
subordenaran por orden alfabético. ¿A alguien se le ocurre cómo lo
podría hacer?


Muchas gracias

Preguntas similare

Leer las respuestas

#1 Eduardo Alvarado Meza
17/10/2006 - 21:09 | Informe spam
Creo que con el listview no se puede, pero por ser un listview es probable
que lo llenes a partir de un datatable y puedes ordenarlos antes de llenar
el listview, algo asi:

dim dtvVista as new DataView(MiDataTable)
dtvVista.Sort = "Campo2 DESC, Campo1 ASC"

Donde campo2 es el booleano, y campo1 es la cadena, para luego llenar el
listview a partir del dataview que tiene ordenado los registros.

Espero te sirva

"Vmrincon" wrote in message
news:
Hola amigos:

Estoy trabajando con un listview en el cual tengo una serie de filas
las cuales tienen un checkbox que puede estar a TRUE o FALSE, me
gustaria hacer dos cosas; la primera que los campos estuvieran
ordenados por checkeados y no checkeados y a continuación se
subordenaran por orden alfabético. ¿A alguien se le ocurre cómo lo
podría hacer?


Muchas gracias
Respuesta Responder a este mensaje
#2 Carlos Gómez
17/10/2006 - 23:33 | Informe spam
Eduardo Alvarado Meza (EliminarEsto) ha escrito:

Creo que con el listview no se puede,



FALSO,

un listview puede ser perfectamente ordenado por las distintas columnas
que lo componen.

Si quieres, me lo dices y mañana mando un ejemplo (no tengo a mano el
código, y me puedo equivocar facilmente si lo pongo de memoria)
Respuesta Responder a este mensaje
#3 Eduardo Alvarado Meza
18/10/2006 - 07:01 | Informe spam
lol, bueno en parte es cierto... tienes razon, el metodo Sort del listview
solo ordena segun el orden preestablecido el texto del item pero no los
subitems. La solución rapida fue la que le di, pero existe otra y para nada
desconocida que es mencionada en el siguiente enlace:

http://msdn2.microsoft.com/en-us/li....sort.aspx

Y es trabajando con el ListViewItemSorter, el siguiente link demuestra su
uso:
http://msdn2.microsoft.com/en-us/li...orter.aspx

De esa manera se pueden ordenar los subitems; ordenar una columna primero y
la otra despues daria el efecto deseado por el compañero, sin embargo, el
ejemplo no contempla el orden descendente, para ello hay intercambiar las
variables en la funcion Compare de la clase hecha ListViewItemComparer,
modificando la siguiente linea asi:

Return [String].Compare(CType(y, ListViewItem).SubItems(col).Text, CType(x,
ListViewItem).SubItems(col).Text)

Espero se aclaren un poco mas las cosas y que este sea el otro metodo a que
te refieres la verdad el aporte fue excelente.



"Carlos Gómez" wrote in message
news:

Eduardo Alvarado Meza (EliminarEsto) ha escrito:

Creo que con el listview no se puede,



FALSO,

un listview puede ser perfectamente ordenado por las distintas columnas
que lo componen.

Si quieres, me lo dices y mañana mando un ejemplo (no tengo a mano el
código, y me puedo equivocar facilmente si lo pongo de memoria)
Respuesta Responder a este mensaje
#4 Vmrincon
18/10/2006 - 09:51 | Informe spam
Te agradecería profundamente que me pusieras el código, Carlos.

Gracias y un saludo


Carlos Gómez ha escrito:

Eduardo Alvarado Meza (EliminarEsto) ha escrito:

> Creo que con el listview no se puede,

FALSO,

un listview puede ser perfectamente ordenado por las distintas columnas
que lo componen.

Si quieres, me lo dices y mañana mando un ejemplo (no tengo a mano el
código, y me puedo equivocar facilmente si lo pongo de memoria)
Respuesta Responder a este mensaje
#5 Vmrincon
18/10/2006 - 21:17 | Informe spam
Hola de Nuevo:

En estado investigando un poco más sobre el tema, y la cuestión es
que no hay problema en ordenar en función del campo Item.Text, el
problema viene si quieres ordenar según el Item.Subitem.Text ¿Alguien
sabe cómo se puede hacer? Es un poco más complicado... Pero querría
ordenar primero aquellos campos que tienen el checkbox a TRUE y dentro
de estos, por orden alfabético...

Un saludo y mil gracias


Eduardo Alvarado Meza (EliminarEsto) wrote:
lol, bueno en parte es cierto... tienes razon, el metodo Sort del listview
solo ordena segun el orden preestablecido el texto del item pero no los
subitems. La solución rapida fue la que le di, pero existe otra y para nada
desconocida que es mencionada en el siguiente enlace:

http://msdn2.microsoft.com/en-us/li....sort.aspx

Y es trabajando con el ListViewItemSorter, el siguiente link demuestra su
uso:
http://msdn2.microsoft.com/en-us/li...orter.aspx

De esa manera se pueden ordenar los subitems; ordenar una columna primero y
la otra despues daria el efecto deseado por el compañero, sin embargo, el
ejemplo no contempla el orden descendente, para ello hay intercambiar las
variables en la funcion Compare de la clase hecha ListViewItemComparer,
modificando la siguiente linea asi:

Return [String].Compare(CType(y, ListViewItem).SubItems(col).Text, CType(x,
ListViewItem).SubItems(col).Text)

Espero se aclaren un poco mas las cosas y que este sea el otro metodo a que
te refieres la verdad el aporte fue excelente.



"Carlos Gómez" wrote in message
news:

Eduardo Alvarado Meza (EliminarEsto) ha escrito:

> Creo que con el listview no se puede,

FALSO,

un listview puede ser perfectamente ordenado por las distintas columnas
que lo componen.

Si quieres, me lo dices y mañana mando un ejemplo (no tengo a mano el
código, y me puedo equivocar facilmente si lo pongo de memoria)
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida