/// <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("×")) { }; 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); }
/// <summary> /// In HTML konvertieren /// </summary> /// <returns>Das Control als HTML</returns> public override IHtmlNode ToHtml() { CancelButton.Url = RedirectUrl; var classes = new List <string>(); classes.Add(Class); switch (Layout) { case TypesLayoutForm.Inline: classes.Add("form-inline"); break; } // Prüfe ob Formular abgeschickt wurde if (string.IsNullOrWhiteSpace(GetParam(SubmitButton.Name))) { OnInit(); } var button = SubmitButton.ToHtml(); var next = SubmitAndNextButton.ToHtml(); var cancel = CancelButton.ToHtml(); var html = new HtmlElementForm() { ID = ID, Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))), Style = Style, Name = Name.ToLower() != "form" ? "form_" + Name.ToLower() : Name.ToLower(), Action = Url, Method = "post" }; html.Elements.AddRange(Content.Select(x => x.ToHtml())); foreach (var v in ValidationResults) { var layout = TypesLayoutAlert.Default; switch (v.Type) { case TypesInputValidity.Error: layout = TypesLayoutAlert.Danger; break; case TypesInputValidity.Warning: layout = TypesLayoutAlert.Warning; break; case TypesInputValidity.Success: layout = TypesLayoutAlert.Success; break; } html.Elements.Add(new ControlAlert(Page) { Layout = layout, Text = v.Text, Dismissible = true, Fade = true }.ToHtml()); } foreach (var v in Items) { html.Elements.Add(new ControlFormularLabelGroup(this) { Item = v }.ToHtml()); } html.Elements.Add(button); if (EnableSubmitAndNextButton) { html.Elements.Add(next); } if (EnableCancelButton) { html.Elements.Add(cancel); } return(html); }