HTML-Code eines ASP.NET-WebControls erhalten

Written on May 21, 2004

Ab und zu steht man vor dem Problem, dass man gerne den HTML-Output eines WebControls hätte, z.B. um in einer HelperFunction im DataGrid einen Hyperlink zu generieren und diesen als kompletten String an den Caller zurückzuliefern.

Die Lösung ist eine kleine Funktion, die wie folgt aussieht:

using System;
using System.IO;
using System.Text;
using System.Web.UI;

namespace myNameSpace
{
public class Helpers
{
public static string RenderControlToString(System.Web.UI.WebControls.WebControl WebControl)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
WebControl.RenderControl(htw);
return sb.ToString();
}
}
}

Der Aufruf erfolgt über:

HyperLink hplWhereToYouWantToGo = new HyperLink();
hplWhereToYouWantToGo.NavigateUrl = "http://alexonasp.net";
hplWhereToYouWantToGo.Text = "Alex on ASP.NET";
string htmlOutput = Helpers.RenderControlToString(hplWhereToYouWantToGo);

Das Resultat: Alex on ASP.NET

[1]: http://alexonasp.net">alex/