我新建一个网页,想动态加两个textbox,而且垂直放置,但是就出现了这个错误:类型“TextBox”的控件“a”必须放在具有 runat=server 的窗体标记内。 但我form里明明有runat="server",为什么它说我错?究竟怎样动态添加textbox,请高手请教。
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    
    </form>
</body>
</html>
protected void Page_Load(object sender, EventArgs e)
    {
        TextBox a = new TextBox();
        a.ID = "a";
        this.Page.Controls.Add(a);  //而且这里我想2个textbox是垂直放置的,不是水平并排放置
        TextBox b = new TextBox();
        b.ID = "b";
        this.Page.Controls.Add(b);
    }

解决方案 »

  1.   

       没见你页面上有两个textbox```
      

  2.   

      在form里面放个容器,然后在代码里面用容器添加试试···
      

  3.   

    在PlaceHolder 添加控件,Page.FindControl查询
    this.Page.Form.Controls.Add(b);
    http://www.cnblogs.com/RIVERSPIRIT/articles/1331303.html
      

  4.   

    你没加到form里去啊
    this.Page.Form.Controls.Add(a);
      

  5.   

    你说的对,现在我想添加两个textbox,但这两个textbox是垂直放置的,怎么做?就是说动态增加了一个textbox后要换行,请指教一下
      

  6.   

      在里面在加个TABLE布局呗 ··DIV+CSS也可以
      

  7.   

    参考:
    http://www.cnblogs.com/insus/articles/1429563.html
      

  8.   

      textbox.Style.Item("LEFT")   =   200   
                      textbox.Style.Item("TOP")   =   200   
      ---------------   
      Me.FindControl("Form1").Controls.Add(textbox)