System.Web.UI.UpdatePanel.RenderChildren C# (CSharp) Method

RenderChildren() protected method

protected RenderChildren ( System.Web.UI.HtmlTextWriter writer ) : void
writer System.Web.UI.HtmlTextWriter
return void
		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);
		}