Thomas Bandt

Über mich | Kontakt | Archiv

ASP.NET - Render Control to String

Um den Text-Output eines einfachen Controls zu bekommen bedarf es nicht viel, beinhaltet das Control selbst aber weitere Controls, die womöglich datengebunden sind oder auf Events hören, dann muss man diese Events auch "feuern". Mit folgendem Snippet funktioniert das wunderbar:

Page page = new Page();
UserControl control = (UserControl)page.LoadControl("~/Template.ascx");
page.Controls.Add(control);
StringWriter html = new StringWriter();
HttpContext.Current.Server.Execute(page, html, false);

Response.Write("<pre>" + html + "</pre>");

Abgeguckt hier.

(Das ermöglicht btw. interessante Einsatzgebiete, z.B. könnte man so E-Mail-Templates mit Listendarstellungen völlig designerfreundlich über ein UserControl realisieren ...)

Kommentare

  1. Jürgen Gutsch schrieb am Donnerstag, 5. Juli 2007 08:40:00 Uhr:

    Hi Thomas,

    oder man macht das so:
    http://www.aspnetzone.de/blogs/juergengutsch/archive/2007/06/15/codesnippet-webcontrol-in-einen-string-rendern.aspx
  2. Thomas schrieb am Donnerstag, 5. Juli 2007 11:54:00 Uhr:

    Hi,

    das funktioniert nicht vollständig, wiel hier im Control keine Events ausgelöst werden.


« Zurück  |  Weiter »