How to get Generated Html form HtmlGenericControl

umair.ali picture umair.ali · May 8, 2013 · Viewed 13.7k times · Source

I have a template for Html page, and I need to add its contents dynamically in ASP.NET. I also need to make many instences of template page, depending in data.

Its obvious that creating large Html using strings is very dirty way. So I choosed to generate my Html using HtmlGenericControl. And i made it. But I cant get the generated Html as string from it.

Its simple to add these controls in ASP.NET pages and get rendered, but I need their Html.

If its not possible, is there any other structrued way of generating Html...???

Answer

umair.ali picture umair.ali · May 9, 2013

Trick told by @Bartdude worked like a charm...

For other peoples, solution goes in this way...

// create you generic controls
HtmlGenericControl mainDiv = new HtmlGenericControl("div");
// setting required attributes and properties
// adding more generic controls to it
// finally, get the html when its ready
StringBuilder generatedHtml = new StringBuilder();
using (var htmlStringWriter = new StringWriter(generatedHtml))
{
    using(var htmlTextWriter = new HtmlTextWriter(htmlStringWriter))
    {
        mainDiv.RenderControl(htmlTextWriter);
        output = generatedHtml.ToString();       
    }
}

Hope this helps for coming readers...:)