<form runat="server" id="f1">
    <div runat="server" id="d">
        grid view:
        <asp:GridView runat="server" ID="g">
        </asp:GridView>
    </div>

    <asp:TextBox runat="server" ID="t" TextMode="MultiLine" Rows="20" Columns="50"></asp:TextBox>
</form>

代码隐藏:

public partial class ScriptTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        g.DataSource = new string[] { "a", "b", "c" };
        g.DataBind();

        TextWriter tw = new StringWriter();
        HtmlTextWriter h = new HtmlTextWriter(tw);    
        d.RenderControl(h);
        t.Text = tw.ToString();
    }
}

即使GridView在具有runat="server"的from标记中,我仍然收到这个错误.

有什么线索吗?

推荐答案

您正在调用GridView.RenderControl(htmlTextWriter),因此页面会引发一个异常,即服务器控件是在窗体外部呈现的.

您可以通过重写VerifyRenderingInServerForm来避免此异常

public override void VerifyRenderingInServerForm(Control control)
{
  /* Confirms that an HtmlForm control is rendered for the specified ASP.NET
     server control at run time. */
}

here6960.aspx/1?Problem%20with%20GridView%20s%20RenderControl" rel="noreferrer">here和here.

Asp.net相关问答推荐

无法翻译 LINQ

在这个 For 循环计数没有增加

$(document).ready 不工作

某些黑客能否从用户那里窃取 Web 浏览器 cookie 并在网站上使用该名称登录?

IE10 SCRIPT5009:__doPostBack未定义

jquery 1.9.0 和 modernizr 无法使用 ASP.NET Web 优化框架进行缩小

使用 Owin 身份验证的服务器端声明缓存

System.Web.Helpers.Crypto - 盐在哪里?

Twitter bootstrap glyphicons 不会出现在发布模式 404 中

带有 ASP.NET MVC 6 锚标记助手的 QueryString

ASP.net 与 PHP( Select 什么)

如何在 ASP.NET Core Web API 中配置 JSON 格式的缩进

如何在 ASP.NET MVC 中启用跨源请求

调查 Web.Config 重复部分原因的步骤

远程计算机无法连接到 Visual Studio Web 服务器

MVC3 和实体框架

如何遍历自定义 vb.net 对象的每个属性?

如何使用 ConfigurationManager.AppSettings

在.net的内存数据库中

在 ASP.NET 中写入文件以响应后回发不起作用