必须将GridView添加到表单标记以进行呈现

时间:2011-06-14 10:52:11

标签: c# .net asp.net

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渲染为字符串?

3 个答案:

答案 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”
相关问题