Render Control to HTML String. VerifyRenderingInServerForm Method
In the previous post I discussed how to render control dynamically. This scheme was also used in "Export Control to Excel" example.
Sometimes you can get "...must be placed inside a form tag with runat=server" error, when you deal with "asp:panel" or "asp:linkbutton" or whatever else scenarious when html form control needs to be rendered for the specified control at run time. The problem can be solved (thanks, Alex) ovverriding Page.VerifyRenderingInServerForm Method. Confirms that an HtmlForm control is rendered for the specified ASP.NET server control at run time.
So, the code would look like the following (rendering asp:panel containing controls itself):
private void Page_Load(object sender, EventArgs e) { StringWriter stringWriter = new StringWriter(); HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter); contentPanel.RenderControl(htmlWriter); string s = stringWriter.ToString(); Response.Write(s); Response.End(); } public override void VerifyRenderingInServerForm(Control control) { return; }
Friday, October 8, 2004 3:17 AM