esmaspäev, 4. veebruar 2013

DropDownListi täitmine väärtuse järgi sorteerimisega ListItem massiivist

Kui vaja asp:DropDownList täita sorteerituna ListItem massiivi väärtuste järgi saab seda teha nii:


ListItem[] items // siin on võti-väärtus andmepaaridena andmed
                  
//sorteerime väärtuse järgi
System.Array.Sort(items, new myListItemComparer());

// item on nüüd sorteeritud

ListItemCollection col = new ListItemCollection();
//lisame kollektsiooni
for (int i = 0; i < items.Length; i++)
{
        col.Add(new ListItem(items[i].Value,items[i].Text));
}
                       
//paneme andmed külge
this.DropDownList1.DataSource = col;
this.DropDownList1.DataTextField = "Text";
this.DropDownList1.DataValueField = "Value";
this.DropDownList1.DataBind();



//väärtuse järgi sorteerimiseks vajalik klass
public class myListItemComparer : IComparer
{
    int IComparer.Compare(object x, object y)
    {
        ListItem item_1 = x as ListItem;
        ListItem item_2 = y as ListItem;

        return item_1.Value.CompareTo(item_2.Value);
    }
}



Kindlasti saab ka kuidagi lihtsamini