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);
}