コード例 #1
0
        private TagBuilder Create(string text, string value, bool isChecked)
        {
            var wrapper = new TagBuilder("div");

            wrapper.AddCssClass("moz-radiobox");
            if (ItemClass != null)
            {
                wrapper.AddCssClass(ItemClass);
            }
            if (isChecked)
            {
                wrapper.AddCssClass("checked");
            }
            if (Disabled)
            {
                wrapper.AddCssClass("disabled");
            }
            wrapper.AddCssClass("checked-style-" + CheckedStyle.ToString().ToLower());

            var input = new TagBuilder("input");

            input.MergeAttribute("type", "radio");
            input.MergeAttribute("name", Name);
            input.MergeAttribute("value", value);
            if (isChecked)
            {
                input.MergeAttribute("checked", "checked");
            }
            input.TagRenderMode = TagRenderMode.SelfClosing;
            wrapper.InnerHtml.AppendHtml(input);

            var label = new TagBuilder("label");

            label.AddCssClass("box-wrapper");
            label.InnerHtml.AppendHtml("<div class=\"box-checked\"></div>");
            wrapper.InnerHtml.AppendHtml(label);

            var span = new TagBuilder("span");

            span.InnerHtml.AppendHtml(text);
            wrapper.InnerHtml.AppendHtml(span);
            return(wrapper);
        }
コード例 #2
0
        /// <summary>
        /// 异步访问并呈现当前标签实例。
        /// </summary>
        /// <param name="context">当前HTML标签上下文,包含当前HTML相关信息。</param>
        /// <param name="output">当前标签输出实例,用于呈现标签相关信息。</param>
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            await output.RenderAsync("div", async wrapper =>
            {
                wrapper.AddCssClass("gt-checkbox");
                if (ItemClass != null)
                {
                    wrapper.AddCssClass(ItemClass);
                }
                if (IsChecked)
                {
                    wrapper.AddCssClass("checked");
                }
                wrapper.AddCssClass("checked-style-" + CheckedStyle.ToString().ToLower());

                var input = new TagBuilder("input");
                input.MergeAttribute("type", "checkbox");
                if (!string.IsNullOrEmpty(Name))
                {
                    input.MergeAttribute("name", Name);
                }
                input.MergeAttribute("value", Value ?? "true");
                if (IsChecked)
                {
                    input.MergeAttribute("checked", "checked");
                }
                input.TagRenderMode = TagRenderMode.SelfClosing;
                wrapper.InnerHtml.AppendHtml(input);

                var label = new TagBuilder("label");
                label.AddCssClass("box-wrapper");
                label.InnerHtml.AppendHtml("<div class=\"box-checked\"></div>");
                wrapper.InnerHtml.AppendHtml(label);

                var text = await output.GetChildContentAsync();
                if (!text.IsEmptyOrWhiteSpace)
                {
                    var span = new TagBuilder("span");
                    span.InnerHtml.AppendHtml(text);
                    wrapper.InnerHtml.AppendHtml(span);
                }
            });
        }