Esempio n. 1
0
        public static string InputButton(this HtmlHelper htmlHelper,
                                         string name,
                                         SelectListItem listItem,
                                         IDictionary <string, object> htmlAttributes,
                                         InputListType inputListType = InputListType.RadioButton)
        {
            var inputIdSb = new StringBuilder();

            inputIdSb.Append(name).Append("_").Append(listItem.Value);
            var sb      = new StringBuilder();
            var builder = new TagBuilder("input");

            if (listItem.Selected)
            {
                builder.MergeAttribute("checked", "checked");
            }
            builder.MergeAttribute("type", inputListType == InputListType.RadioButton ? "radio" : "checkbox");
            builder.MergeAttribute("value", listItem.Value);
            builder.MergeAttribute("id", inputIdSb.ToString());
            builder.MergeAttribute("name", name);
            builder.MergeAttributes(htmlAttributes);
            sb.Append(builder.ToString(TagRenderMode.SelfClosing));
            sb.Append(RadioButtonLabel(inputIdSb.ToString(), listItem.Text, htmlAttributes));
            sb.Append("<br>");
            return(sb.ToString());
        }
Esempio n. 2
0
 public static MvcHtmlString InputListFor <TModel, TValue>(
     this HtmlHelper <TModel> htmlHelper,
     Expression <Func <TModel, TValue> > expression,
     IEnumerable <SelectListItem> selectList,
     object htmlAttributes       = null,
     InputListType inputListType = InputListType.RadioButton)
 {
     return(htmlHelper.InputListFor(expression, selectList, new RouteValueDictionary(htmlAttributes), inputListType));
 }
Esempio n. 3
0
        public static MvcHtmlString InputListFor <TModel, TValue>(
            this HtmlHelper <TModel> htmlHelper,
            Expression <Func <TModel, TValue> > expression,
            IEnumerable <SelectListItem> selectList,
            IDictionary <string, object> htmlAttributes,
            InputListType inputListType = InputListType.RadioButton)
        {
            var inputName = GetInputName(expression);

            TValue value = (TValue)(ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData).Model);

            // IEnumerable<SelectListItem> radioButtonList = GetValue(htmlHelper, expression);
            if (selectList == null)
            {
                return(MvcHtmlString.Empty);
            }

            var divTag = new TagBuilder("div");

            divTag.MergeAttribute("id", inputName);
            divTag.MergeAttribute("class", inputListType == InputListType.RadioButton ? "radio" : "checkbox");
            foreach (var item in selectList)
            {
                var selectItem = new SelectListItem {
                    Text = item.Text, Selected = item.Selected, Value = item.Value.ToString()
                };
                if (value != null && selectItem.Value.Equals(value.ToString()))
                {
                    selectItem.Selected = true;
                }
                var radioButtonTag =
                    InputButton(htmlHelper,
                                inputName,
                                selectItem,
                                htmlAttributes,
                                inputListType);
                divTag.InnerHtml += radioButtonTag;
            }
            return(MvcHtmlString.Create(divTag.ToString()));
        }