Exemple #1
0
        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);
            }
        }
Exemple #2
0
		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);
		}