CLR: .Net / Mono / Boo / Otros CLR > C#
Organizar Los Datos De Un Listbox
JdAlpine:
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:
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.
JdAlpine:
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)
Navegación
[*] Página Anterior
Ir a la versión completa