Ordenar Datos a Partir de un ListView

28/06/2006 - 17:46 por alfonso_C# | Informe spam
Hola como andan ? . Queria confirmar si la logica que estoy aplicando
es la correcta o hay otra forma de hacer lo que les voy a comentar:

Tengo un ListView con Datos que han sido ingresados aleatoriamente a
gusto del Usuario. Bien, este ListView tiene varias Columnas o SubItems
y estos datos debo ordenarlos por 2 de esas columnas. Hasta donde tengo
entendido solo se puede ordenar 1 sola columna del ListView por ese
motivo he decidido usar una DataTable para llenarla con la misma data
del ListView y ordenar este por medio de un DataView y procesar los
datos a partir de alli. ¿Esto esta bien? ¿El camino que escogí es el
mas largo? ¿Existe una manera mas sencilla de hacer eso ?. P.D.: Solo
estoy trabajando con datos en memoria no directamente con Base de
Datos, o sea nada de DataBinding ni nada de esas cosas. Agradecido por
sus comentarios. :)

Preguntas similare

Leer las respuestas

#1 Vyacheslav Popov
28/06/2006 - 18:12 | Informe spam
Hola Alonso,

Me ocurre lo siguiente: si tienes que ordenar por dos campos A y B ordena
primero por el campo B y luego por el campo A

-desordenado
A B
2 b
1 a
2 a
1 b

-1ª ordenacion
A B
1 a
2 a
1 b
2 b

-2ª ordenacion
A B
1 a
1 b
2 a
2 b

Saludos.



"alfonso_C#" escribió en el mensaje
news:
Hola como andan ? . Queria confirmar si la logica que estoy aplicando
es la correcta o hay otra forma de hacer lo que les voy a comentar:

Tengo un ListView con Datos que han sido ingresados aleatoriamente a
gusto del Usuario. Bien, este ListView tiene varias Columnas o SubItems
y estos datos debo ordenarlos por 2 de esas columnas. Hasta donde tengo
entendido solo se puede ordenar 1 sola columna del ListView por ese
motivo he decidido usar una DataTable para llenarla con la misma data
del ListView y ordenar este por medio de un DataView y procesar los
datos a partir de alli. ¿Esto esta bien? ¿El camino que escogí es el
mas largo? ¿Existe una manera mas sencilla de hacer eso ?. P.D.: Solo
estoy trabajando con datos en memoria no directamente con Base de
Datos, o sea nada de DataBinding ni nada de esas cosas. Agradecido por
sus comentarios. :)
#2 alfonso_C#
28/06/2006 - 21:27 | Informe spam
Gracias Vyacheslav, te refieres a ordenar con algun metodo del ListView
una columna y luego la otra ?


Vyacheslav Popov ha escrito:

Mostrar la cita
#3 Vyacheslav Popov
29/06/2006 - 18:36 | Informe spam
Bueno me referia al efecto de ordenación que tienes en la vista de detalle
del explorador de archivos.

Chapuzzeando

listView1.ListViewItemSorter = new ListViewItemComparer(B);
listView1.Sort();
listView1.ListViewItemSorter = new ListViewItemComparer(A);
listView1.Sort();

class ListViewItemComparer : IComparer
{
private int col;
public ListViewItemComparer()
{
col = 0;
}
public ListViewItemComparer(int column)
{
col = column;
}
public int Compare(object x, object y)
{
return String.Compare(((ListViewItem)x).SubItems[col].Text,
((ListViewItem)y).SubItems[col].Text);
}
}

Otra solucion
public int Compare(object x, object y)
{
int result =
String.Compare(((ListViewItem)x).SubItems[colA].Text,
((ListViewItem)y).SubItems[colA].Text);
if (result == 0)
result =
String.Compare(((ListViewItem)x).SubItems[colB].Text,
((ListViewItem)y).SubItems[colB].Text));

return result;
}


La clase ListViewItemComparer la enlazas con listView:

lvwColumnSorter = new ListViewColumnSorter();
listView1.ListViewItemSorter = lvwColumnSorter;

Saludos.

"alfonso_C#" escribió en el mensaje
news:
Gracias Vyacheslav, te refieres a ordenar con algun metodo del ListView
una columna y luego la otra ?


Vyacheslav Popov ha escrito:

Mostrar la cita
#4 alfonso_C#
29/06/2006 - 20:40 | Informe spam
Gracias (^_^)


Vyacheslav Popov ha escrito:

Mostrar la cita
Ads by Google
Search Busqueda sugerida