Checkbox List for Enumeration - HtmlHelper method

Say I have an enumeration and I wanted to display a check box list with all the enumeration values. Below is the sample HTML Helper method.


        public static string EnumCheckBoxes<TEnum>(this HtmlHelper helper, string name, TEnum enumObj)
        {
            if (!typeof(TEnum).IsEnum) throw new ArgumentException("An Enumeration type is required.", "enumObj");
            StringBuilder resultHtml = new StringBuilder("<div>");
            foreach (TEnum e in Enum.GetValues(typeof(TEnum)))
            {
                var checkboxList = new TagBuilder("input");
                checkboxList.MergeAttribute("type", "checkbox");
                checkboxList.MergeAttribute("name", name);
                checkboxList.MergeAttribute("value", e.ToString());
                resultHtml.Append(checkboxList.ToString(TagRenderMode.SelfClosing));

                var label = new TagBuilder("label");
                label.MergeAttribute("style", "margin-left:5px");
                label.SetInnerText(e.GetStringValue());
                resultHtml.Append(label.ToString(TagRenderMode.Normal));

                resultHtml.Append("<br />");
            }
            return resultHtml.Append("</div>").ToString();
        }

No comments:

Post a Comment