Thursday, July 7, 2011

Custom attributes & Enum 2

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

blog

No comments:

Post a Comment