From 9e49f743f90a3cf35d22061eb3e3683844bbeabb Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Sun, 11 Aug 2024 10:13:01 -0400 Subject: [PATCH] move beginning of page writing into RenderBeginTag so we can properly override content in RenderContents --- src/lib/MBS.Web/UI/WebPage.cs | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/lib/MBS.Web/UI/WebPage.cs b/src/lib/MBS.Web/UI/WebPage.cs index 979ded2..89fb4f8 100644 --- a/src/lib/MBS.Web/UI/WebPage.cs +++ b/src/lib/MBS.Web/UI/WebPage.cs @@ -19,9 +19,9 @@ public class WebPage : Control { } - protected override void PersistentInitializeInternal() - { - base.PersistentInitializeInternal(); + protected override void PersistentInitializeInternal() + { + base.PersistentInitializeInternal(); Controls.Clear(); CreateChildControls(); @@ -33,22 +33,19 @@ public class WebPage : Control ChildControlsCreated = true; } */ - } + } protected virtual IEnumerable GetHeaderControls() { return [ ]; } - protected override string TagName => "html"; - protected override void RenderBeginTag(XmlWriter writer) - { + protected override string TagName => "html"; + protected override void RenderBeginTag(XmlWriter writer) + { EnsureInitialized(); writer.WriteStartElement(TagName, "http://www.w3.org/1999/xhtml"); - } - protected override void RenderContents(XmlWriter writer) - { writer.WriteStartElement("head"); writer.WriteElementString("title", "Mocha Application"); @@ -89,11 +86,19 @@ public class WebPage : Control writer.WriteStartElement("form"); writer.WriteAttributeString("method", "POST"); + } + + protected override void RenderContents(XmlWriter writer) + { foreach (Control control in Controls) { control.Context = Context; control.Render(writer); } + } + protected override void RenderEndTag(XmlWriter writer) + { + base.RenderEndTag(writer); writer.WriteEndElement(); writer.WriteEndElement();