public static IEnumerable <EnumDataSourceItem> GetItemListByDescription(Type enumType, ListItemSortType sortType) { List <EnumDataSourceItem> items = new List <EnumDataSourceItem>(); // get the names from the enumeration string[] names = Enum.GetNames(enumType); // get the values from the enumeration Array values = Enum.GetValues(enumType); for (int i = 0; i < names.Length; i++) { EnumDataSourceItem item = new EnumDataSourceItem(); item.value = (int)values.GetValue(i); //item.key = names[i]; item.key = DevelopmentBase.Common.EnumDescription((Enum)values.GetValue(i)); item.isPrivate = DevelopmentBase.Common.EnumIsPrivate((Enum)values.GetValue(i)); items.Add(item); } if (sortType == ListItemSortType.ByTextIncreasing) { var returnList = from i in items orderby i.key ascending select i; return(returnList); } else if (sortType == ListItemSortType.ByTextDecreasing) { var returnList = from i in items orderby i.key descending select i; return(returnList); } else if (sortType == ListItemSortType.ByValueIncreasing) { var returnList = from i in items orderby i.key ascending select i; return(returnList); } else if (sortType == ListItemSortType.ByValueDecreasing) { var returnList = from i in items orderby i.key descending select i; return(returnList); } else { var returnList = from i in items select i; return(returnList); } }
public static void BindToDropDownFromDescriptions(ref System.Web.UI.WebControls.DropDownList ddl, Type enumType, ListItemSortType sortType) { ddl.DataSource = GetItemListByDescription(enumType, sortType); ddl.DataTextField = "key"; ddl.DataValueField = "value"; ddl.DataBind(); }