TextWriter tr = new StringWriter();
HtmlTextWriter writer = new HtmlTextWriter(tr);
HtmlForm form = new HtmlForm();
form.Controls.Add(divQueryDescription);
divQueryDescription.RenderControl(writer);
<div runat="server" id="divQueryDescription">
<asp:GridView runat="server" id="grv"></asp:GridView>
</div>
我的GridView在DIV中,我将DIV添加到HtmlForm中,以便我可以将其渲染为字符串。但是我收到以下错误: -
Gridview'grv'必须放在带有runat = server的表单标签内,尽管我的Gridview已经在表单中,因为我将DIV添加到表单中。
如何将此DIV渲染为字符串?
答案 0 :(得分:5)
只需在页面中添加以下代码
即可public override void VerifyRenderingInServerForm(Control control)
{
return;
}
要了解有关它的更多信息,请阅读MSDN documentation。
答案 1 :(得分:0)
根据您在此处显示的内容,GridView
已经已经在form
元素runat="server"
中,您需要执行以下操作:
<form runat="server">
<div runat="server" id="divQueryDescription">
<asp:GridView runat="server" id="grv"></asp:GridView>
</div>
</form>
特别值得注意的是<form runat="server">
部分及其结束标记。
更新
看起来form
导致问题,因为它尚未写出,您直接从div
写出:尝试使用form.RenderControl(writer);
。
答案 2 :(得分:0)
确保表格元素/控件
中有runat =“server”