/// <summary>
        /// In HTML konvertieren
        /// </summary>
        /// <returns>Das Control als HTML</returns>
        public override IHtmlNode ToHtml()
        {
            var classes = new List <string>();

            classes.Add(Class);
            classes.Add("modal");

            if (Fade)
            {
                classes.Add("fade");
            }

            var headerText = new HtmlElementH4(Header)
            {
                Class = "modal-title"
            };

            var headerButtonLabel = new HtmlElementSpan(new HtmlText("&times;"))
            {
            };

            headerButtonLabel.AddUserAttribute("aria-hidden", "true");

            var headerButton = new HtmlElementButton(headerButtonLabel)
            {
                Class = "close"
            };

            headerButton.AddUserAttribute("aria-label", "close");
            headerButton.AddUserAttribute("data-dismiss", "modal");

            var header = new HtmlElementDiv(headerText, headerButton)
            {
                Class = "modal-header"
            };

            var body = new HtmlElementDiv(from x in Content select x.ToHtml())
            {
                Class = "modal-body"
            };

            var footerButtonOK = new HtmlElementButton(new HtmlText("OK"))
            {
                Type  = "submit",
                Class = "btn btn-success"
            };
            //footerButtonOK.AddUserAttribute("data-dismiss", "modal");

            var footerButtonCancel = new HtmlElementButton(new HtmlText("Abbrechen"))
            {
                Type  = "button",
                Class = "btn btn-danger"
            };

            footerButtonCancel.AddUserAttribute("data-dismiss", "modal");

            var footer = new HtmlElementDiv(footerButtonOK, footerButtonCancel)
            {
                Class = "modal-footer"
            };

            var form = new HtmlElementForm(header, body, footer)
            {
                Action = "#" + ID,
                Method = "post",
                Name   = "form_" + ID
            };

            var content = new HtmlElementDiv(form)
            {
                Class = "modal-content"
            };

            var dialog = new HtmlElementDiv(content)
            {
                Class = "modal-dialog",
                Role  = "document"
            };

            var html = new HtmlElementDiv(dialog)
            {
                ID    = ID,
                Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                Style = Style,
                Role  = "dialog"
            };

            if (!string.IsNullOrWhiteSpace(OnShownCode))
            {
                var shown = "$('#" + ID + "').on('shown.bs.modal', function(e) { " + OnShownCode + " });";
                Page.AddScript(ID + "_shown", shown);
            }

            if (!string.IsNullOrWhiteSpace(OnHiddenCode))
            {
                var hidden = "$('#" + ID + "').on('hidden.bs.modal', function() { " + OnHiddenCode + " });";
                Page.AddScript(ID + "_hidden", hidden);
            }

            return(html);
        }
Example #2
0
        /// <summary>
        /// In HTML konvertieren
        /// </summary>
        /// <returns>Das Control als HTML</returns>
        public override IHtmlNode ToHtml()
        {
            var classes = new List <string>();

            classes.Add(Class);

            switch (Color)
            {
            case TypesTextColor.Muted:
                classes.Add("text-muted");
                break;

            case TypesTextColor.Primary:
                classes.Add("text-primary");
                break;

            case TypesTextColor.Success:
                classes.Add("text-success");
                break;

            case TypesTextColor.Info:
                classes.Add("text-info");
                break;

            case TypesTextColor.Warning:
                classes.Add("text-warning");
                break;

            case TypesTextColor.Danger:
                classes.Add("text-danger");
                break;

            case TypesTextColor.Light:
                classes.Add("text-light");
                break;

            case TypesTextColor.Dark:
                classes.Add("text-dark");
                break;

            case TypesTextColor.White:
                classes.Add("text-white");
                break;
            }

            switch (BackgroundColor)
            {
            case TypesBackgroundColor.Primary:
                classes.Add("bg-primary");
                break;

            case TypesBackgroundColor.Secondary:
                classes.Add("bg-secondary");
                break;

            case TypesBackgroundColor.Success:
                classes.Add("bg-success");
                break;

            case TypesBackgroundColor.Info:
                classes.Add("bg-info");
                break;

            case TypesBackgroundColor.Warning:
                classes.Add("bg-warning");
                break;

            case TypesBackgroundColor.Danger:
                classes.Add("bg-danger");
                break;

            case TypesBackgroundColor.Light:
                classes.Add("bg-light");
                break;

            case TypesBackgroundColor.Dark:
                classes.Add("bg-dark");
                break;

            case TypesBackgroundColor.White:
                classes.Add("bg-white");
                break;

            case TypesBackgroundColor.Transparent:
                classes.Add("bg-transparent");
                break;
            }

            switch (HorizontalAlignment)
            {
            case TypesHorizontalAlignment.Left:
                classes.Add("float-left");
                break;

            case TypesHorizontalAlignment.Right:
                classes.Add("float-right");
                break;
            }

            var html = null as HtmlElement;

            switch (Format)
            {
            case TypesTextFormat.Paragraph:
                html = new HtmlElementP(Text)
                {
                    ID    = ID,
                    Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Style = Style,
                    Role  = Role
                };
                break;

            case TypesTextFormat.Italic:
                html = new HtmlElementI(Text)
                {
                    ID    = ID,
                    Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Style = Style,
                    Role  = Role
                };
                break;

            case TypesTextFormat.Bold:
                html = new HtmlElementB(Text)
                {
                    ID    = ID,
                    Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Style = Style,
                    Role  = Role
                };
                break;

            case TypesTextFormat.H1:
                html = new HtmlElementH1(Text)
                {
                    ID    = ID,
                    Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Style = Style,
                    Role  = Role
                };
                break;

            case TypesTextFormat.H4:
                html = new HtmlElementH4(Text)
                {
                    ID    = ID,
                    Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Style = Style,
                    Role  = Role
                };
                break;

            case TypesTextFormat.Span:
                html = new HtmlElementSpan(new HtmlText(Text))
                {
                    ID    = ID,
                    Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Style = Style,
                    Role  = Role
                };
                break;

            default:
                html = new HtmlElementDiv(new HtmlText(Text))
                {
                    ID    = ID,
                    Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Style = Style,
                    Role  = Role
                };
                break;
            }

            if (!string.IsNullOrWhiteSpace(Tooltip))
            {
                html.AddUserAttribute("data-toggle", "tooltip");
                html.AddUserAttribute("title", Tooltip);
            }

            return(html);
        }