控件必须放在具有 runat=server 的窗体标记内"错误的解决方法

页面需要一个导出到Excel的功能,不想再次查询数据,想直接输出一个div的里面的内容,可以总报错,尝试了很多方法不行,总提示,一个隐藏控件必须放在具有 runat=server 的窗体标记内"错误的解决方法。

页面结构代码如下:

最后找到方法如下,关键代码:

StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);

Page page = new Page();
HtmlForm form = new HtmlForm();
div_Table.EnableViewState = false;
page.EnableEventValidation = false;
page.DesignerInitialize();
page.Controls.Add(form);
form.Controls.Add(div_Table);
page.RenderControl(htw);

原文地址:https://www.cnblogs.com/Cynosure/p/6050903.html