Sorting a drop down list
This code shows how to sort a Drop Down List. This code was added to a Drop Down List custom control.
using System.Collections;
public void SortByValue()
{
SortCombo(this, new ComboValueComparer());
}
public void SortByText()
{
SortCombo(this, new ComboTextComparer());
}
private static void SortCombo(ListControl combo, IComparer comparer)
{
int i;
if (combo.Items.Count <= 1)
return;
ArrayList arrItems=new ArrayList();
for (i=0; i {
ListItem item=combo.Items[i];
arrItems.Add(item);
}
arrItems.Sort(comparer);
combo.Items.Clear();
for (i=0; i {
combo.Items.Add((ListItem) arrItems[i]);
}
}
/// compare list items by their value
///
private class ComboValueComparer : IComparer
{
public enum SortOrder
{
Ascending=1,
Descending=-1
}
private int _modifier;
public ComboValueComparer()
{
_modifier = (int) SortOrder.Ascending;
}
public ComboValueComparer(SortOrder order)
{
_modifier = (int) order;
}
//sort by value
public int Compare(Object o1, Object o2)
{
ListItem cb1=(ListItem) o1;
ListItem cb2=(ListItem) o2;
return cb1.Value.CompareTo(cb2.Value)*_modifier;
}
} //end class ComboValueComparer
///
/// compare list items by their text.
///
private class ComboTextComparer : IComparer
{
public enum SortOrder
{
Ascending=1,
Descending=-1
}
private int _modifier;
public ComboTextComparer()
{
_modifier = (int) SortOrder.Ascending;
}
public ComboTextComparer(SortOrder order)
{
_modifier = (int) order;
}
//sort by value
public int Compare(Object o1, Object o2)
{
ListItem cb1=(ListItem) o1;
ListItem cb2=(ListItem) o2;
|
© 2008 dotnetwatch.com -- Privacy policy
Website Design & Internet Marketing by Shivam