/// <summary> /// Creates an alert /// </summary> /// <param name="type">Type of alert</param> /// <param name="message">Alert message</param> /// <param name="title">Title/Heading of the alert</param> /// <param name="icon">Icon to be rendered with title/heading</param> private void CreateAlert(EMessage type, string message, string title, IHtmlComponent icon) { CssClasses.Add(type.GetStringValue()); HtmlComponent bc = new HtmlComponent(EHtmlTag.B) { InnerHtml = title ?? string.Empty }; if (icon != null) { bc.PrependTags.Add(icon); } if (WebExtrasSettings.CssFramework != ECssFramework.JQueryUI) { CssClasses.Add("alert"); Button closeBtn = new Button(EButton.Regular, "×", string.Empty); closeBtn.CssClasses.Add("close"); closeBtn.Attributes["data-dismiss"] = "alert"; PrependTags.Add(closeBtn); PrependTags.Add(bc); InnerHtml = (!string.IsNullOrWhiteSpace(title) || icon != null) ? WebExtrasSettings.HTMLSpace + message : message; } else { HtmlComponent div = new HtmlComponent(EHtmlTag.Div); switch (type) { case EMessage.Error: div.CssClasses.Add("ui-state-error"); break; case EMessage.Information: case EMessage.Warning: div.CssClasses.Add("ui-state-highlight"); break; case EMessage.Success: div.CssClasses.Add("ui-state-success"); break; } div.CssClasses.Add("ui-corner-all"); div.PrependTags.Add(bc); div.InnerHtml = (!string.IsNullOrWhiteSpace(title) || icon != null) ? WebExtrasSettings.HTMLSpace + message : message; PrependTags.Add(div); } Type = type; }
/// <summary> /// Constructor /// </summary> /// <param name="icon">Icon to be displayed as the hypelink</param> /// <param name="url">Link URL</param> /// <param name="htmlAttributes">[Optional Extra HTML attributes</param> public BootstrapIconlink(EFontAwesomeIcon icon, string url, object htmlAttributes = null) : base(string.Empty, url, htmlAttributes) { CssClasses.Add("icon-only-link"); m_icon = BootstrapUtil.CreateIcon(icon); PrependTags.Add(m_icon); }
/// <summary> /// Constructor /// </summary> /// <param name="icon">Icon to be displayed as the hypelink</param> /// <param name="url">Link URL</param> /// <param name="htmlAttributes">[Optional Extra HTML attributes</param> public BootstrapIconlink(EBootstrapIcon icon, string url, object htmlAttributes = null) : base(string.Empty, url, htmlAttributes) { CssClasses.Add("icon-only-link"); IHtmlComponent iconElement = BootstrapUtil.CreateIcon(icon); PrependTags.Add(iconElement); }
/// <summary> /// Converts current HTML component to a HTML encoded string /// </summary> /// <returns></returns> public virtual string ToHtml() { PreRender(); if (Tag == EHtmlTag.Empty) { return(string.Empty); } if (Attributes.ContainsKey("class")) { CssClasses.Add(Attributes["class"]); } if (CssClasses.Count > 0) { Attributes["class"] = string.Join(" ", CssClasses.Distinct()); } string innerHtml = string.Empty; if (Tag != EHtmlTag.Img) { innerHtml = string.Join("", PrependTags.Select(f => f.ToHtml())) + InnerHtml + string.Join("", AppendTags.Select(f => f.ToHtml())); } List <string> parts = new List <string> { "<" + Tag.ToString().ToLowerInvariant() }; string attribs = " " + string.Join(" ", Attributes.OrderBy(f => f.Key).Select(f => string.Format("{0}=\"{1}\"", f.Key, f.Value))); parts.Add(attribs); if (Tag == EHtmlTag.Img || Tag == EHtmlTag.Input) { parts.Add("/>"); } else { parts.Add(">"); if (!string.IsNullOrWhiteSpace(innerHtml)) { parts.Add(innerHtml); } parts.Add("</" + Tag.ToString().ToLowerInvariant() + ">"); } string result = string.Join(string.Empty, parts); return(result); }
/// <summary> /// Creates a Bootstrap navigation bar from the given /// list of items /// </summary> /// <param name="list">Navigation bar items</param> private void CreateNavBar(HtmlList list) { list.Attributes["class"] = "nav navbar-nav"; Attributes["class"] = Type.GetStringValue(); switch (WebExtrasSettings.BootstrapVersion) { case EBootstrapVersion.V2: HtmlComponent innerNav = new HtmlComponent(EHtmlTag.Div); innerNav.Attributes["class"] = "navbar-inner"; if (Brand != null) { innerNav.PrependTags.Add(Brand.Component); } innerNav.AppendTags.Add(list); AppendTags.Add(innerNav); break; case EBootstrapVersion.V3: if (Brand != null) { Brand.Attributes["class"] = "navbar-brand"; PrependTags.Add(Brand.Component); } AppendTags.Add(list); break; default: throw new BootstrapVersionException(); } }