下面是我的代码protected void Page_Load(object sender, EventArgs e)
    {
        Button bFirst = new Button();
        bFirst.Text = "测试按钮";
        bFirst.Style["left"] = "150px";
        bFirst.Style["top"] = "40px";
        bFirst.Style["position"] = "absolute";
        bFirst.ID = "tt";
        bFirst.Click += new EventHandler(bFirst_Click);
        Page.Controls.Add(bFirst);        
    }
    
刚开始这样加载控件时会出现控件必须放在runat=server标签中的错误,
Control 'tt' of type 'Button' must be placed inside a form tag with runat=server.
后来我重载了VerifyRenderingInServerForm函数
   public override void VerifyRenderingInServerForm(Control control)
  { }
这样虽然不会出现错误,但按钮的事件响应不了,我不知道是不是重载VerifyRenderingInServerForm函数的原因,请各位大哥帮忙解答下。

解决方案 »

  1.   

    Page.Form.Controls.Add(bFirst);  
      

  2.   

    protected void Page_Load(object sender, EventArgs e)
        {
            Button bFirst = new Button();
            bFirst.Text = "测试按钮";
            bFirst.Style["left"] = "150px";
            bFirst.Style["top"] = "40px";
            bFirst.Style["position"] = "absolute";
            bFirst.ID = "tt";
            bFirst.Click += new EventHandler(bFirst_Click);
            Page.Form.Controls.Add(bFirst);  
        }
        protected void bFirst_Click(object sender, EventArgs e)
        {
            Response.Write("ssss");
        }
      

  3.   

    不要重载VerifyRenderingInServerForm函数,直接将Page.Controls.Add(bFirst)改为this.form1.Controls.Add(bFirst)
    protected void Page_Load(object sender, EventArgs e)
        {
            Button bFirst = new Button();
            bFirst.Text = "测试按钮";
            bFirst.Style["left"] = "150px";
            bFirst.Style["top"] = "40px";
            bFirst.Style["position"] = "absolute";
            bFirst.ID = "tt";
            bFirst.Click += new EventHandler(bFirst_Click);
         //Page.Controls.Add(bFirst);                
         this.form1.Controls.Add(bFirst);
            
        }    protected void bFirst_Click(object sender, EventArgs e)
        {
            Response.Write("OK");
        }
      

  4.   

    用了1楼和3楼的方法还是出现错误: Control 'ctl02' of type 'TextBox' must be placed inside a form tag with runat=server.
      

  5.   

    你的aspx文件里面加一个<form id="form1" runat="server"></form>
      

  6.   

    下次发贴到Asp.net吧,这里混着很不舒服