protected internal override void RenderChildren(HtmlTextWriter writer) { RenderChildrenWriter = null; if (IsInPartialRendering) { ScriptManager.AlternativeHtmlTextWriter altWriter = writer as ScriptManager.AlternativeHtmlTextWriter; if (altWriter == null) { altWriter = writer.InnerWriter as ScriptManager.AlternativeHtmlTextWriter; } if (altWriter == null) { UpdatePanel parentPanel = ParentPanel; if (parentPanel != null) { altWriter = parentPanel.RenderChildrenWriter; } } if (altWriter == null) { throw new InvalidOperationException("Internal error. Invalid writer object."); } // Used by nested panels (see bug #542441) RenderChildrenWriter = altWriter; try { HtmlTextWriter responseOutput = altWriter.ResponseOutput; StringBuilder sb = new StringBuilder(); HtmlTextWriter w = new HtmlTextWriter(new StringWriter(sb)); base.RenderChildren(w); w.Flush(); if (sb.Length > 0) { UpdatePanel parent = ParentPanel; if (parent != null && parent.ChildrenAsTriggers) { writer.Write(sb.ToString()); } else { ScriptManager.WriteCallbackPanel(responseOutput, this, sb); } } } finally { RenderChildrenWriter = null; } } else { base.RenderChildren(writer); } }
protected internal override void RenderChildren (HtmlTextWriter writer) { RenderChildrenWriter = null; if (IsInPartialRendering) { ScriptManager.AlternativeHtmlTextWriter altWriter = writer as ScriptManager.AlternativeHtmlTextWriter; if (altWriter == null) altWriter = writer.InnerWriter as ScriptManager.AlternativeHtmlTextWriter; if (altWriter == null) { UpdatePanel parentPanel = ParentPanel; if (parentPanel != null) altWriter = parentPanel.RenderChildrenWriter; } if (altWriter == null) throw new InvalidOperationException ("Internal error. Invalid writer object."); // Used by nested panels (see bug #542441) RenderChildrenWriter = altWriter; try { HtmlTextWriter responseOutput = altWriter.ResponseOutput; StringBuilder sb = new StringBuilder (); HtmlTextWriter w = new HtmlTextWriter (new StringWriter (sb)); base.RenderChildren (w); w.Flush (); UpdatePanel parent = ParentPanel; if (parent != null && parent.ChildrenAsTriggers) writer.Write (sb.ToString ()); else ScriptManager.WriteCallbackPanel (responseOutput, this, sb); } finally { RenderChildrenWriter = null; } } else base.RenderChildren (writer); }