private void OrdenarListBox(ListBox listBoxControl) { //se convierte la coleccion de items a un array ListItem[] myListItemArray = new ListItem[listBoxControl.Items.Count]; lbxRecursosAsignados.Items.CopyTo(myListItemArray, 0); //mediante linq se ordena el array por el campo Texto del item IEnumerable<ListItem> query = from r in myListItemArray orderby r.Text ascending select r; //se enlaza el array al control lbxRecursosAsignados.DataSource = query; lbxRecursosAsignados.DataBind(); }
martes, 1 de septiembre de 2009
Ordenar ListItemCollection
Cuando tenemos un control como puede ser un DropDownList ó un ListBox, es posible que necesitemos mostrar los elementos de forma ordenada. Para ello dependiendo de la forma que hayamos cargado el control, la ordenación sera mas o menos sencilla.
En el caso de que nuestro control este enlazado a datos, la forma más sencilla seria ordenar los elementos antes de ser enlazados.
Existen otros escenarios en los que podemos permitir al usuario manipular esa lista o bien el caso típico que tenemos dos listbox en los que podemos pasar datos de uno al otro. Para esto tendremos que convertir la colección de items a un array y mediante LinQ realizamos la ordenación.
La función podria ser la siguiente:
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario