Funções utilitárias sempre quebram um bom galho. Sem muito rodeio, o código abaixo efetua a ordenação dos itens de um controle ASP.NET ListBox:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | /// <summary> /// Ordena um listbox em ordem Ascendente /// </summary> /// <param name="ListBox">O controle ListBox a ser ordenado</param> /// <param name="ByValue">True se a ordenação deve ser feita pelo Valor(Value) /// ou False para orndenar pelo Texto (Text)</param> public static void sortListBox(ref ListBox ListBox, bool ByValue) { SortedList ListItems = new SortedList(); // adicionar os items do ListBox ao SortedList foreach (ListItem Item in ListBox.Items) { if (ByValue) ListItems.Add(Item.Value, Item); else ListItems.Add(Item.Text, Item); } // limpa o controle ListBox.Items.Clear(); // adicionar o itens ordenados for (int i = 0; i < ListItems.Count; i++) { ListBox.Items.Add((ListItem)ListItems[ListItems.GetKey(i)]); } } |
Como menciona o comentário, o segundo parâmetro define se os itens serão ordenados pela propriedade Value ou Text. Dei uma “brasileirada” no código. A referência original pode ser vista neste link:
http://forums.asp.net/p/1202130/2094935.aspx
Bom proveito!