code_junkie

Sorting a DropDownList? - C#, ASP.NET

Nov 11th, 2011
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. DataView dvOptions = new DataView(DataTableWithOptions);
  2. dvOptions.Sort = "Description";
  3.  
  4. ddlOptions.DataSource = dvOptions;
  5. ddlOptions.DataTextField = "Description";
  6. ddlOptions.DataValueField = "Id";
  7. ddlOptions.DataBind();
  8.  
  9. List<string> items = GetItemsFromSomewhere();
  10. items.Sort((x, y) => string.Compare(x, y));
  11. DropDownListId.DataSource = items;
  12. DropDownListId.DataBind();
  13.  
  14. public static void ReorderAlphabetized(this DropDownList ddl)
  15. {
  16. List<ListItem> listCopy = new List<ListItem>();
  17. foreach (ListItem item in ddl.Items)
  18. listCopy.Add(item);
  19. ddl.Items.Clear();
  20. foreach (ListItem item in listCopy.OrderBy(item => item.Text))
  21. ddl.Items.Add(item);
  22. }
  23.  
  24. protected override void OnPreRender(EventArgs e)
  25. {
  26. base.OnPreRender(e);
  27. ddlMyDropDown.ReorderAlphabetized();
  28. }
  29.  
  30. Public Class ListItemComparer
  31. Implements IComparer(Of ListItem)
  32.  
  33. Public Function Compare(ByVal x As ListItem, ByVal y As ListItem) As Integer _
  34. Implements IComparer(Of ListItem).Compare
  35.  
  36. Dim c As New CaseInsensitiveComparer
  37. Return c.Compare(x.Text, y.Text)
  38. End Function
  39. End Class
  40.  
  41. Public Shared Sub SortDropDown(ByVal cbo As DropDownList)
  42. Dim lstListItems As New List(Of ListItem)
  43. For Each li As ListItem In cbo.Items
  44. lstListItems.Add(li)
  45. Next
  46. lstListItems.Sort(New ListItemComparer)
  47. cbo.Items.Clear()
  48. cbo.Items.AddRange(lstListItems.ToArray)
  49. End Sub
  50.  
  51. SortDropDown(cboMyDropDown)
  52.  
  53. List<ListItem> li = new List<ListItem>();
  54. foreach (ListItem list in DropDownList1.Items)
  55. {
  56. li.Add(list);
  57. }
  58. li.Sort((x, y) => string.Compare(x.Text, y.Text));
  59. DropDownList1.Items.Clear();
  60. DropDownList1.DataSource = li;
  61. DropDownList1.DataTextField = "Text";
  62. DropDownList1.DataValueField = "Value";
  63. DropDownList1.DataBind();
  64.  
  65. <asp:ObjectDataSource ID="dsData" runat="server" TableName="Data"
  66. Sort="ColumnName ASC" />
  67.  
  68. function sortlist(mylist)
  69. {
  70. var lb = document.getElementById(mylist);
  71. arrTexts = new Array();
  72. arrValues = new Array();
  73. arrOldTexts = new Array();
  74.  
  75. for(i=0; i<lb.length; i++)
  76. {
  77. arrTexts[i] = lb.options[i].text;
  78. arrValues[i] = lb.options[i].value;
  79.  
  80. arrOldTexts[i] = lb.options[i].text;
  81. }
  82.  
  83. arrTexts.sort();
  84.  
  85. for(i=0; i<lb.length; i++)
  86. {
  87. lb.options[i].text = arrTexts[i];
  88. for(j=0; j<lb.length; j++)
  89. {
  90. if (arrTexts[i] == arrOldTexts[j])
  91. {
  92. lb.options[i].value = arrValues[j];
  93. j = lb.length;
  94. }
  95. }
  96. }
  97. }
Add Comment
Please, Sign In to add comment