protected override void BootstrapProcess(TagHelperContext context, TagHelperOutput output) { context.SetButtonGroupContext(this); output.Attributes.Add("role", "group"); if (context.HasInputGroupContext()) { Size = BootstrapTagHelpers.Size.Default; if (!context.HasInputGroupAddonContext()) { output.TagName = "span"; output.AddCssClass("input-group-btn"); } context.RemoveInputGroupContext(); } else { output.TagName = "div"; if (Vertical) output.AddCssClass("btn-group-vertical"); else output.AddCssClass("btn-group"); if (Size.HasValue) output.AddCssClass("btn-group-" + Size.Value.GetDescription()); if (Justified) output.AddCssClass("btn-group-justified"); } }
protected override void BootstrapProcess(TagHelperContext context, TagHelperOutput output) { bool hasNavContext = context.HasNavContext(); if (hasNavContext) { output.TagName = "li"; output.Attributes.Add("role", "presentation"); Context = null; Splitted = false; } else { output.TagName = "div"; output.AddCssClass("btn-group"); if (Size.HasValue && Size != BootstrapTagHelpers.Size.Default) output.AddCssClass("btn-group-" + Size.Value.GetDescription()); } if (context.HasInputGroupContext()) { Size = BootstrapTagHelpers.Size.Default; if (!context.HasInputGroupAddonContext()) { output.TagName = "span"; output.AddCssClass("input-group-btn"); } } if (Dropup) output.AddCssClass("dropup"); var buttonBuilder = new TagBuilder(Href == null && !hasNavContext ? "button" : "a"); buttonBuilder.InnerHtml.AppendHtml(Text); if (!hasNavContext) { buttonBuilder.AddCssClass("btn"); buttonBuilder.AddCssClass("btn-" + (Context ?? ButtonContext.Default).ToString().ToLower()); if (Href == null) buttonBuilder.Attributes.Add("type", "button"); if (ButtonId != null) buttonBuilder.Attributes.Add("id", ButtonId); else { buttonBuilder.Attributes.Add("href", Href); if (!Splitted) buttonBuilder.Attributes.Add("role", "button"); } } else { buttonBuilder.Attributes.Add("href",Href); } if (Splitted) { output.PreContent.Append(buttonBuilder); buttonBuilder = new TagBuilder("button") { Attributes = { {"type", "button"}, {"class", "btn btn-" + (Context ?? ButtonContext.Default).ToString().ToLower()} } }; } else buttonBuilder.InnerHtml.AppendHtml(" "); buttonBuilder.AddCssClass("dropdown-toggle"); buttonBuilder.Attributes.Add("data-toggle", "dropdown"); buttonBuilder.Attributes.Add("aria-haspopup", "true"); buttonBuilder.Attributes.Add("aria-expanded", "false"); buttonBuilder.InnerHtml.AppendHtml("<span class=\"caret\">"); output.PreContent.Append(buttonBuilder); output.PreContent.AppendHtml(RightAligned ? "<ul class=\"dropdown-menu dropdown-menu-right\">" : "<ul class=\"dropdown-menu\">"); output.PostContent.AppendHtml("</ul>"); }
protected override void BootstrapProcess(TagHelperContext context, TagHelperOutput output) { output.AddCssClass("btn"); output.AddCssClass("btn-" + (Context ?? ButtonContext.Default).ToString().ToLower()); if (context.HasInputGroupContext()) { Size=BootstrapTagHelpers.Size.Default; if (!context.HasInputGroupAddonContext()) { output.PreElement.PrependHtml("<span class=\"input-group-btn\">"); output.PostElement.AppendHtml("</span>"); } } if (WrapInButtonGroup || !output.TagName.Equals("a", StringComparison.CurrentCultureIgnoreCase) && ButtonGroupJustified) { if (Size.HasValue && Size.Value != BootstrapTagHelpers.Size.Default) output.PreElement.SetHtmlContent( $"<div class=\"btn-group btn-group-{Size.Value.GetDescription()}\" role=\"group\">"); else output.PreElement.SetHtmlContent( $"<div class=\"btn-group\" role=\"group\">"); output.PostElement.SetHtmlContent("</div>"); } else if (Size.HasValue && Size.Value != BootstrapTagHelpers.Size.Default) output.AddCssClass("btn-" + Size.Value.GetDescription()); if (BlockStyle) output.AddCssClass("btn-block"); if (Pressed) { output.AddAriaAttribute("pressed", "true"); output.AddCssClass("active"); } if (Disabled) { if (output.TagName == "a") { output.AddCssClass("disabled"); if (context.AllAttributes.ContainsName("href")) { output.Attributes.RemoveAll("href"); output.Attributes.Add("data-href", context.AllAttributes["href"].Value); } } output.MergeAttribute("role", "button"); } }