Home | Articles|Namespace|Interview Questions|Tools|Jobs|Projects|Community
Asp.net Tutorials

»Dotnet Ads
»Message Boards
Message Boards
Dotnet Books

»Member Details
Register
Login
LogOut
Submit Code
Submit Jobs
Submit Projects

»Competition
Community
Winners
Prizes
Write For Us
Members

»Other Resources
Links
Dotnet Resources

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;

Have a Question and dont know the answer post it below and get answers in minutes

Due to spam this feature is disabled
To get answers fast , make sure you enter a detailed subject for example: "DataGrid issues need answer" not "DataGrid"

Subject:

Catjegory Name:

Message:



© 2008 dotnetwatch.com -- Privacy policy