Пример #1
0
        protected virtual TagBuilder CreateTagBuilder(TagBuilderInfo tagBuilderInfo)
        {
            var tagBuilder = new TagBuilder(tagBuilderInfo.TagName);

            if (tagBuilderInfo.CssClass != null)
            {
                tagBuilder.AddCssClass(tagBuilderInfo.CssClass);
            }

            return(tagBuilder);
        }
Пример #2
0
        public void WriteTo(TextWriter writer, HtmlEncoder encoder)
        {
            if (writer == null)
            {
                throw new ArgumentNullException(nameof(writer));
            }

            if (encoder == null)
            {
                throw new ArgumentNullException(nameof(encoder));
            }

            var        isFirstListItem = true;
            TagBuilder listTagBuilder  = null;

            foreach (var block in this)
            {
                if (block.IsListItem())
                {
                    var listTagName    = GetListTagName(block);
                    var isDifferentTag = !listTagName.Equals(listTagBuilder?.TagName);

                    if (isFirstListItem || isDifferentTag)
                    {
                        listTagBuilder?.WriteTo(writer, encoder);
                        listTagBuilder  = new TagBuilder(listTagName);
                        isFirstListItem = false;
                    }

                    var listItemTag = new TagBuilder("li");
                    var style       = new TagBuilderInfo(block.Style);

                    if (style.CssClass != null)
                    {
                        listItemTag.AddCssClass(style.CssClass);
                    }

                    block.WriteTo(listItemTag, writer, encoder);
                    listTagBuilder.InnerHtml.AppendHtml(listItemTag);
                }
                else
                {
                    isFirstListItem = true;
                    listTagBuilder?.WriteTo(writer, encoder);
                    listTagBuilder = null;
                    block.WriteTo(writer, encoder);
                }
            }

            listTagBuilder?.WriteTo(writer, encoder);
        }
Пример #3
0
        protected virtual void WriteToWrapper(TagBuilder wrapper, TagBuilderInfo tagBuilderInfo)
        {
            foreach (var field in Children)
            {
                IHtmlContent html;

                if (tagBuilderInfo.NeedsWrapper)
                {
                    var tagBuilder = CreateTagBuilder(tagBuilderInfo);
                    tagBuilder.InnerHtml.AppendHtml(field);
                    html = tagBuilder;
                }
                else
                {
                    html = field;
                }

                wrapper.InnerHtml.AppendHtml(html);
            }
        }