Esempio n. 1
0
        /// <summary>
        /// Render um elemento HTML bootstrap-multiselect para cada propriedade no objeto representado pela expressão especificada, usando os itens da lista e a label da opção especificados.
        /// </summary>
        /// <typeparam name="TModel">O tipo de modelo</typeparam>
        /// <typeparam name="TProperty">O tipo do valor</typeparam>
        /// <param name="helper">A instância auxiliar do HTML que este método estende</param>
        /// <param name="expression">Uma expressão que identifica o objeto que contém as propriedades a serem exibidas</param>
        /// <param name="selectList">A coleção de objetos SelectListItem que é usado para popular o dropdownlist</param>
        /// <param name="optionLabel">O texto padrão para item vazio. Este parâmetro pode ser null</param>
        /// <param name="htmlAttributes">Um objeto que contém os atributos HTML a serem definidos para o elemento</param>
        /// <returns>retorna um elemento select para cada propriedade no objecto que é representado pela expressão</returns>
        public static MvcHtmlString DropDownListMultipleCheckBoxesFor <TModel, TProperty>(this HtmlHelper <TModel> helper, Expression <Func <TModel, TProperty> > expression, IEnumerable <SelectListItem> selectList, string optionLabel, object htmlAttributes = null)
        {
            var    metadata     = ModelMetadata.FromLambdaExpression(expression, helper.ViewData);
            string propertyName = metadata.PropertyName;

            var selectElement = new MultiLevelHtmlTag("select");

            selectElement.Attributes.Add("name", propertyName);
            selectElement.Attributes.Add("class", "listbox");
            selectElement.Attributes.Add("multiple", "multiple");

            foreach (var item in selectList)
            {
                var selectOptionElem = new MultiLevelHtmlTag("option");
                selectOptionElem.Attributes.Add("value", item.Value);
                selectOptionElem.InnerHtml = item.Text;
                selectElement.InnerTags.Add(selectOptionElem);
            }

            if (htmlAttributes != null)
            {
                var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
                selectElement.MergeAttributes(attributes);
            }

            return(new MvcHtmlString(selectElement.ToString()));
        }
Esempio n. 2
0
        /// <summary>
        /// Renderiza um elemento HTML span de mensagem de alerta de validação, exibindo o label da mensagem especificados.
        /// </summary>
        /// <param name="helper">A instância auxiliar de HTML que este metodo estende</param>
        /// <param name="messageText">O texto que será exibido para alerta</param>
        /// <param name="htmlAttributes">Um objeto que contém os atributos HTML a serem definidos para o elemento</param>
        /// <returns>retorna um elemento HTML span de mensagem de alerta de validação</returns>
        public static MvcHtmlString AlertValidateMessage(this HtmlHelper helper, string messageText, object htmlAttributes = null)
        {
            var spanElem = new MultiLevelHtmlTag("span");

            spanElem.Attributes.Add("class", "text-danger custom-field-validation-error");
            spanElem.InnerHtml = messageText;

            if (htmlAttributes != null)
            {
                var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
                spanElem.MergeAttributes(attributes);
            }

            return(new MvcHtmlString(spanElem.ToString()));
        }
Esempio n. 3
0
        public static MvcHtmlString DropDownListMultipleCheckBoxFor <TModel, TProperty>(this HtmlHelper <TModel> helper, Expression <Func <TModel, TProperty> > expression, IEnumerable <SelectListItem> selectList, string optionLabel, object htmlAttributes = null)
        {
            var    metadata     = ModelMetadata.FromLambdaExpression(expression, helper.ViewData);
            string propertyName = metadata.PropertyName;

            var div = new MultiLevelHtmlTag("div");

            div.Attributes.Add("class", "multiselect");

            #region Div 1
            var div1 = new MultiLevelHtmlTag("div");
            div1.Attributes.Add("class", "selectBox");
            div1.Attributes.Add("onclick", "showCheckboxes()");

            var selectElem = new MultiLevelHtmlTag("select");
            selectElem.Attributes.Add("name", propertyName);
            selectElem.Attributes.Add("id", "your-id-element");
            selectElem.Attributes.Add("class", "dropdown");
            selectElem.Attributes.Add("style", "width: 100%; margin-bottom: 0px;");

            var selectOptionElem = new MultiLevelHtmlTag("option");
            selectOptionElem.Attributes.Add("value", "0");
            selectOptionElem.InnerHtml = "Selecione...";
            selectElem.InnerTags.Add(selectOptionElem);

            var div_1 = new MultiLevelHtmlTag("div");
            div_1.Attributes.Add("class", "overSelect");

            div_1.InnerTags.Add(selectElem);
            div1.InnerTags.Add(div_1);
            #endregion

            #region Div 2
            var div2 = new MultiLevelHtmlTag("div");
            div2.Attributes.Add("id", "checkboxes");
            div2.Attributes.Add("style", "display: none;");

            foreach (var item in selectList)
            {
                var label = new MultiLevelHtmlTag("label");
                label.Attributes.Add("class", "select-checkboxes");

                var input = new MultiLevelHtmlTag("input");
                input.Attributes.Add("type", "checkbox");
                input.Attributes.Add("value", item.Value);

                var span = new MultiLevelHtmlTag("span");
                span.Attributes.Add("style", "padding: 5px;");
                span.InnerHtml = item.Text;

                label.InnerTags.Add(input);
                label.InnerTags.Add(span);

                div2.InnerTags.Add(label);
            }
            #endregion

            if (htmlAttributes != null)
            {
                var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
                div.MergeAttributes(attributes);
            }

            return(new MvcHtmlString(div.ToString()));
        }