コード例 #1
0
ファイル: Alert.cs プロジェクト: kouweizhong/webextras
        /// <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, "&times;", 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;
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        /// <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();
            }
        }