Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get the HTML output of a UserControl in .NET (C#)?

If I create a UserControl and add some objects to it, how can I grab the HTML it would render?

ex.

UserControl myControl = new UserControl(); myControl.Controls.Add(new TextBox());  // ...something happens  return strHTMLofControl; 

I'd like to just convert a newly built UserControl to a string of HTML.

like image 493
Jon Smock Avatar asked Nov 13 '08 21:11

Jon Smock


1 Answers

You can render the control using Control.RenderControl(HtmlTextWriter).

Feed StringWriter to the HtmlTextWriter.

Feed StringBuilder to the StringWriter.

Your generated string will be inside the StringBuilder object.

Here's a code example for this solution:

string html = String.Empty; using (TextWriter myTextWriter = new StringWriter(new StringBuilder())) {     using (HtmlTextWriter myWriter = new HtmlTextWriter(myTextWriter))     {         myControl.RenderControl(myWriter);         html = myTextWriter.ToString();     } } 
like image 61
azamsharp Avatar answered Oct 05 '22 01:10

azamsharp