• Domingo 22 de Diciembre de 2024, 10:10

Autor Tema:  Organizar Los Datos De Un Listbox  (Leído 3563 veces)

JdAlpine

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Organizar Los Datos De Un Listbox
« en: Jueves 26 de Enero de 2006, 17:33 »
0
Buenas,

Quisiera saber si exite alguna forma de organizar alfabeticamente o descendentemente los datos que aparecen dentro de un ListBox.

Los datos del listbox, los cargo por medio de una funcion que hace una consulta a la BD, es decir:

"SELECT name FROM ACCOUNTS ORDER BY name"

En teoria deberia organizarme los datos en el ListBox de acuerdo a la consulta, pero no lo esta haciendo.

Me explico un poco mejor: En la BD tengo los siguientes datos:

0  Pedro
1  Andres
2  Marcos
3  Ana
4  Carolina

Cuando hago la consulta los datos quedan asi:
Ana
Andres
Carolina
Marcos
Pedro
y asi deberian listarse en el ListBox, pero no lo esta haciendo.


Gracias

Juan Dario A B)

Gandalf_malaga7

  • Miembro MUY activo
  • ***
  • Mensajes: 162
    • Ver Perfil
Re: Organizar Los Datos De Un Listbox
« Respuesta #1 en: Jueves 26 de Enero de 2006, 19:04 »
0
No se,

a mi lo más sencillo que se me ocurre es meter los datos de la BBDD en un array de strings.Los ordenas dentro de este array,y a continuación con un bucle for los agregas al listBox,

salu2!!!!!
...Gandalf El Gris,ese era mi nombre;soy Gandalf El Blanco y en los albores de la tempestad vuelvo a vosotros.

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Organizar Los Datos De Un Listbox
« Respuesta #2 en: Lunes 30 de Enero de 2006, 10:01 »
0
Hola,

Pero eso de 0,1,2 ... Es parte del nombre o es el id de los registros??

Si eso prueba a ordenarlos por el id.
Saludos
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

JdAlpine

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Organizar Los Datos De Un Listbox
« Respuesta #3 en: Lunes 30 de Enero de 2006, 21:06 »
0
Saludos, Güorker

El valor 0, 1,2 es el id de los registros.

No entiendo cuando decis que los ordene por el id. Pues si hago tal cosa, entonces los ordenaria en forma descendiente o ascendente de acuerdo al id, entonces seria una organizacion numerica, y no de acuerdo al name,(Organizacion Alfabetica en forma descendente) que es lo qe realmente ncesito.

gracias

Juan Dario A B)

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Organizar Los Datos De Un Listbox
« Respuesta #4 en: Martes 31 de Enero de 2006, 08:31 »
0
Perdon,

había entendido mal el post original. No se porque el ListBox no te muestra los Items en el orden en el que te los devuelve la consulta. ¿Estas utilizando un Dataview como origen de datos del ListBox?

Saludos y Suerte.
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

JdAlpine

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Organizar Los Datos De Un Listbox
« Respuesta #5 en: Martes 31 de Enero de 2006, 13:18 »
0
Saludos, Güorker


NO estoy  utilizando un Dataview como origen de datos.

Para el origen de datos realizo las siguientes funciones:
En la pagina en el evento load llamo la siguente funcion:
cargarListas(lstAccount,ControlClientes.getClientes(true),"name","id_account");   

public static void cargarListas(ListControl control,Object lista, string texto, string id) {
        control.DataSource = lista;
        control.DataTextField = texto;
        control.DataValueField = id;
        control.DataBind();
      }

El objeto lista se construye a partir de los datos obtenidos de la consulta y los almaceno en una array asi:

public static ArrayList getClientes(bool vacio){
     ArrayList todos = getContenedor().consultarTodos();
     if(vacio){
                   objAccounts cli = new objAccounts();
      cli.id_account  = Constantes.CO_ENTERO_NULL;
      todos.Insert(0,cli);
   }
      return todos;
   }

La verdad Yo tampoco entiendo el por que no los organiza en forma alfabetica o en forma descendente.

Espero puedan colaborarme gracias


Juan Dario A. B)

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Organizar Los Datos De Un Listbox
« Respuesta #6 en: Martes 31 de Enero de 2006, 15:38 »
0
Hola,

El metodo "getClientes(bool vacio)" lo llamas varias veces en tu aplicación?

Lo digo porque lo has declarado "static" y no se si eso tendrá que ver, ya que en ese metodo el ArrayList que devuelves ya está inicializado y puede que no esté ordenado como tu esperas. Comprueba eso debugeando la aplicación y cuentanos.

Saludos y suerte.
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

JdAlpine

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Organizar Los Datos De Un Listbox
« Respuesta #7 en: Martes 31 de Enero de 2006, 16:04 »
0
Saludos, Güorker

El metodo "getClientes(bool vacio)", lo llamo cada vez que carga la lista.

Debuge el progama y el error esta en la creacion de un nuevo espacion en la lista de la coleccion para posteriormente publicarla es decir:

De la Bd obtengo  valores:
1 Pedro
2 Ana
3 Daniel

Ordenados en la lista quedarian asi: Ana, Daniel, Pedro.
Con el metodo getClientes(bool Vacio), donde vacio es igual a true . lo que se hace es agregar un nuevo valor a la lista para luego  publicarla

public static ArrayList getClientes(bool vacio){
    ArrayList todos = getContenedor().consultarTodos();
    if(vacio){
     objAccounts cli = new objAccounts();
                 cli.id_account  = -1;
     todos.Insert(0,cli);
   }
           return todos;
     }
es decir
(vacio)
Ana
Daniel
Pedro.
En teoria asi deberian publicarse, es decir, crear el nuevo espacio en la lista, pero no perder el orden de los items. Lo cual no ocurre: (vacio), Daniel, Ana, Pedro.

La solucion temporal que encontre fue publicar el listbox sin un espacio en blanco y comenzando la lista con el primer valor de la coleccion, para ello coloco vacio en false, y no genera ese nuevo espacio en blanco en la lista, pero la verdad necesito publicar el listbox con un espacio en blanco en su primera fila , para que posteriormente el usuario escoja el item que quiere ver de la lista.

gracias de antemano, y espero hayan entendido.Si no avisan para explicar mejor


Juan Dario A B)