internal void RaiseOutputEvent(OutputEventArgs e)
		{
			if (this.Output != null)
			{
				this.Output(this, e);
			}
		}
		protected override void Render(HtmlTextWriter writer)
		{
			StringBuilder builder = new StringBuilder();
			HtmlTextWriter tempWriter = new HtmlTextWriter(new StringWriter(builder));

			if (this.Original != null)
			{
				controlAdapterRenderMethod.Invoke(this.Original, new Object[] { tempWriter });
			}
			else
			{
				controlRenderMethod.Invoke(this.Control, new Object[] { tempWriter });
			}

			if (String.IsNullOrWhiteSpace(this.XslPath) == false)
			{
				String path = HttpContext.Current.Server.MapPath(this.XslPath);

				XmlDocument xml = new XmlDocument();
				xml.LoadXml(builder.ToString());

				builder.Clear();

				XslCompiledTransform xsl = new XslCompiledTransform();
				xsl.Load(path);
				xsl.Transform(xml, null, tempWriter);
			}

			OutputEventArgs e = new OutputEventArgs() { Html = builder.ToString() };

			this.OutputControl.RaiseOutputEvent(e);

			if (e.Html != builder.ToString())
			{
				builder.Clear();
				builder.Append(e.Html);
			}

			writer.Write(builder.ToString());
		}