【问题标题】:When I try to add a dynamically created control to an asp I get a error当我尝试将动态创建的控件添加到 asp 时出现错误
【发布时间】:2009-09-26 10:49:14
【问题描述】:

当我动态创建控件并将其添加到页面的控件集合时,我收到以下错误。这是怎么回事?如何动态向页面添加控件?

Control 'ctl02' of type 'TextBox' must be placed inside a form tag with runat=server.

我正在做类似的事情:

protected override void OnPreRender(EventArgs e)
{
    base.OnPreRender(e);
    double total = (double)ViewState[cKeyTotal];
    TextBox txt = new TextBox();
    txt.Text = "hello world";

    this.Controls.Add(txt);
}

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    页面上没有表单。该控件必须位于其中。

    添加表单:

    <form runat='server' id='form1'>
        ...
    </form>
    

    生活应该是美好的。

    【讨论】:

    • 我不明白。我正在研究标准 Default.aspx 的代码隐藏,它确实具有您在上面编写的 html。还有一些东西不见了
    • 我明白了。问题是 this.Controls.Add() 没有将控件添加到 form1。如果您将上面的代码更改为具有 form1.Controls.Add() 那么一切都很好。
    猜你喜欢
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多