how can i sort drop down items in asp.net?

asp.net, c#, vb.net

Solution

You can create a small utility method like this to sort the items of DropDownList.

public static void SortListControl(ListControl control, bool isAscending)
{
    List<ListItem> collection;

    if (isAscending)
        collection = control.Items.Cast<ListItem>()
            .Select(x => x)
            .OrderBy(x => x.Text)
            .ToList();
    else
        collection = control.Items.Cast<ListItem>()
            .Select(x => x)
            .OrderByDescending(x => x.Text)
            .ToList();

    control.Items.Clear();

    foreach (ListItem item in collection)
        control.Items.Add(item);
}

Usage

protected void Page_Load(object sender, EventArgs e)
{
    for (int i = 0; i < 10; i++)
        DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));

    // Sort the DropDownList's Items by descending
    SortListControl(MyDropDownList, false);
}

Problem

I have a drop down in asp.net that I added some things to from the database. Also in the end I added some things manually. Now I need to sort these items in a quick and simple way. The drop down selected value is as number. Is object link useful for my problem? If your answer is yes, please describe.

Original source

Related problems