コード例 #1
0
        /// <summary>
        /// Builder
        /// </summary>
        /// <param name="expression"></param>
        /// <param name="htmlAttributes"></param>
        /// <typeparam name="TProperty"></typeparam>
        /// <returns></returns>
        public MvcHtmlString Builder <TProperty>(Expression <Func <TModel, TProperty> > expression, object htmlAttributes)
        {
            var attributes = HtmlAttributesUtility.ObjectToHtmlAttributesDictionary(htmlAttributes);

            attributes.AddMaxLengthAttribute(expression);

            return(_helper.TextBoxFor(expression, attributes));
        }
コード例 #2
0
        /// <summary>
        /// Builder
        /// </summary>
        /// <param name="notify"></param>
        /// <param name="showCloseButton"></param>
        /// <param name="htmlAttributes"></param>
        /// <returns></returns>
        public MvcHtmlString Builder(Thunder.Notify notify, bool showCloseButton, object htmlAttributes)
        {
            if (!notify.Messages.Any())
            {
                return(MvcHtmlString.Empty);
            }

            var tagBuilder = new TagBuilder("div");
            var attributes = HtmlAttributesUtility.ObjectToHtmlAttributesDictionary(htmlAttributes);
            var content    = string.Empty;

            if (showCloseButton)
            {
                var closeButton = new TagBuilder("button")
                {
                    InnerHtml = "&times;"
                };

                closeButton.Attributes.Add("type", "button");
                closeButton.Attributes.Add("class", "close");
                closeButton.Attributes.Add("data-dismiss", "alert");
                closeButton.Attributes.Add("aria-hidden", "true");

                content += closeButton.ToString();
            }

            if (notify.Messages.Count > 0)
            {
                if (notify.Messages.Count == 1)
                {
                    content += notify.Messages[0];
                }
                else
                {
                    var ul = new TagBuilder("ul");

                    foreach (var li in notify.Messages.Select(message => new TagBuilder("li")
                    {
                        InnerHtml = message
                    }))
                    {
                        ul.InnerHtml += li.ToString();
                    }

                    content += ul.ToString();
                }
            }

            attributes.AddCssClass("alert{0}".With(CssClass(notify.Type)));
            tagBuilder.InnerHtml = content;

            tagBuilder.MergeAttributes(attributes);

            return(MvcHtmlString.Create(tagBuilder.ToString()));
        }
コード例 #3
0
        /// <summary>
        /// Builder
        /// </summary>
        /// <param name="url"></param>
        /// <param name="htmlAttributes"></param>
        /// <returns></returns>
        public MvcHtmlString Builder(string url, object htmlAttributes)
        {
            var tagBuilder = new TagBuilder("script");
            var attributes = HtmlAttributesUtility.ObjectToHtmlAttributesDictionary(htmlAttributes);

            tagBuilder.Attributes.Add("type", "text/javascript");
            tagBuilder.Attributes.Add("src", UrlHelper.GenerateContentUrl(url, _helper.ViewContext.HttpContext));

            tagBuilder.MergeAttributes(attributes, true);

            return(MvcHtmlString.Create(tagBuilder.ToString()));
        }
コード例 #4
0
ファイル: ImageBuilder.cs プロジェクト: cesarabrantes/thunder
        /// <summary>
        /// Builder
        /// </summary>
        /// <param name="url"></param>
        /// <param name="htmlAttributes"></param>
        /// <returns></returns>
        public MvcHtmlString Builder(string url, object htmlAttributes)
        {
            var tagBuilder = new TagBuilder("img");
            var attributes = HtmlAttributesUtility.ObjectToHtmlAttributesDictionary(htmlAttributes);

            attributes.Add("border", "0");
            attributes.Add("src", UrlHelper.GenerateContentUrl(url, _helper.ViewContext.HttpContext));

            tagBuilder.MergeAttributes(attributes);

            return(MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.SelfClosing)));
        }
コード例 #5
0
        /// <summary>
        /// Builder
        /// </summary>
        /// <param name="url"></param>
        /// <param name="htmlAttributes"></param>
        /// <returns></returns>
        public MvcHtmlString Builder(string url, object htmlAttributes)
        {
            var tagBuilder = new TagBuilder("link");
            var attributes = HtmlAttributesUtility.ObjectToHtmlAttributesDictionary(htmlAttributes);

            tagBuilder.Attributes.Add("type", "text/css");
            tagBuilder.Attributes.Add("media", "screen");
            tagBuilder.Attributes.Add("rel", "stylesheet");
            tagBuilder.Attributes.Add("href", UrlHelper.GenerateContentUrl(url, _helper.ViewContext.HttpContext));

            tagBuilder.MergeAttributes(attributes, true);

            return(MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.SelfClosing)));
        }
コード例 #6
0
        /// <summary>
        /// Builder
        /// </summary>
        /// <param name="source"></param>
        /// <param name="url"></param>
        /// <param name="size"></param>
        /// <param name="htmlAttributes"></param>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public MvcHtmlString Builder <T>(IPaging <T> source, Func <int, string> url, int size, object htmlAttributes)
        {
            var attributes = HtmlAttributesUtility.ObjectToHtmlAttributesDictionary(htmlAttributes);
            var ul         = new TagBuilder("ul");

            attributes.AddCssClass("pagination");

            ul.MergeAttributes(attributes);
            ul.InnerHtml += Item(url, source.HasPreviousPage ? (source.CurrentPage - 1) : -1, "&laquo;", false, !source.HasPreviousPage);

            foreach (var page in Pages(source, size))
            {
                ul.InnerHtml += Item(url, page, (page + 1).ToString(CultureInfo.InvariantCulture), page == source.CurrentPage);
            }

            ul.InnerHtml += Item(url, source.HasNextPage ? (source.CurrentPage + 1) : -1, "&raquo;", false, !source.HasNextPage);

            return(MvcHtmlString.Create(ul.ToString()));
        }
コード例 #7
0
        public CarouselCaptionPanel ItemWithCaption(string url, string altText, object htmlAttributes = null)
        {
            if (isFirstItem)
            {
                base.TxtWriter.Write(@"<div class=""item active"">");
                isFirstItem = false;
            }
            else
            {
                base.TxtWriter.Write(@"<div class=""item"">");
            }

            var imgBuilder = new TagBuilder("img");

            imgBuilder.MergeAttributes(HtmlAttributesUtility.ObjectToHtmlAttributesDictionary(htmlAttributes));
            imgBuilder.MergeAttribute("src", urlHelper.Content(url));
            imgBuilder.MergeAttribute("alt", altText);
            base.TxtWriter.Write(imgBuilder.ToString(TagRenderMode.SelfClosing));
            return(new CarouselCaptionPanel(base.TxtWriter));
        }
コード例 #8
0
ファイル: GridBuilder.cs プロジェクト: cesarabrantes/thunder
        /// <summary>
        /// Builder
        /// </summary>
        /// <param name="url"></param>
        /// <param name="pageSize"></param>
        /// <param name="htmlAttributes"></param>
        /// <returns></returns>
        public MvcGrid Builder(string url, int pageSize, object htmlAttributes)
        {
            var tagBuilder = new TagBuilder("div");
            var textWriter = _helper.ViewContext.Writer;
            var attributes = HtmlAttributesUtility.ObjectToHtmlAttributesDictionary(htmlAttributes);

            if (pageSize == 0)
            {
                pageSize = 15;
            }

            attributes.AddCssClass("thunder-grid");
            attributes.MergeAttribute("data-url", url);
            attributes.MergeAttribute("data-page-size", pageSize);

            tagBuilder.MergeAttributes(attributes);

            textWriter.Write(tagBuilder.ToString(TagRenderMode.StartTag));

            return(new MvcGrid(_helper.ViewContext));
        }
コード例 #9
0
        /// <summary>
        /// Builder
        /// </summary>
        /// <param name="text"></param>
        /// <param name="column"></param>
        /// <param name="filter"></param>
        /// <param name="htmlAttributes"></param>
        /// <returns></returns>
        public MvcHtmlString Builder(string text, string column, Thunder.Model.Filter filter, object htmlAttributes)
        {
            var tagBuilder = new TagBuilder("a")
            {
                InnerHtml = text
            };
            var attributes = HtmlAttributesUtility.ObjectToHtmlAttributesDictionary(htmlAttributes);
            var asc        = true;

            foreach (var filterOrder in filter.Orders.Where(filterOrder => filterOrder.Column.ToLower().Equals(column.ToLower())))
            {
                asc = !filterOrder.Asc;
            }

            attributes.AddCssClass("thunder-grid-order");
            attributes.Add("href", "#");
            attributes.Add("data-column", column);
            attributes.Add("data-asc", asc.ToString().ToLower());

            tagBuilder.MergeAttributes(attributes);

            return(MvcHtmlString.Create(tagBuilder.ToString()));
        }