I asked how to render a UserControl’s HTML and got the code working for a dynamically generated UserControl.
Now I’m trying to use LoadControl to load a previously generated Control and spit out its HTML, but it’s giving me this:
Control of type ‘TextBox’ must be placed inside a form tag with runat=server.
I’m not actually adding the control to the page, I’m simply trying to grab its HTML. Any ideas?
Here’s some code I’m playing with:
TextWriter myTextWriter = new StringWriter(); HtmlTextWriter myWriter = new HtmlTextWriter(myTextWriter); UserControl myControl = (UserControl)LoadControl('newUserControl.ascx'); myControl.RenderControl(myWriter); return myTextWriter.ToString();
Alternatively you could disable the ServerForm/Event-validation on the page that is rendering the control to a string.
The following example illustrates how to do this.