Display values of custom attribute in Drop Down
Is there any advantage of adding custom attribute in Enum?
I want to bind some Cartoon Character names to drop down box; these values keep as Enum in my project. As we all know Enums doesn’t support spaces and special characters. So… use custom attribute
Method to get Enum as a collection
public static IEnumerable<CartoonCharacters> GetCommenttype()
{
yield return CartoonCharacters.TinTin;
yield return CartoonCharacters.SpongeBob;
yield return CartoonCharacters.SpiderMan;
yield return CartoonCharacters.BugsBunny;
yield return CartoonCharacters.TomAndJerry;
yield return CartoonCharacters.DonaldDuck;
}
If you think yield keyword is new to you, I found two great articles
Using C# Yield for Readability and Performance
Behind the scenes of the C# yield keyword
Method to bind data
public static Dictionary<CartoonCharacters, string> GetCartoonCharacters()
{
var list = new Dictionary<CartoonCharacters, string>();
foreach (CartoonCharacters item in GetCommenttype())
{
list.Add(item, GetDescription(item));
}
return list;
}
Don’t forget to bind data collection with drop down
ddlCartoonCharacters.DataSource = GetCartoonCharacters();
ddlCartoonCharacters.DataTextField = "value";
ddlCartoonCharacters.DataValueField = "key";
ddlCartoonCharacters.DataBind();
Final look