代码如下if(!IsPostBack)
  {
Button bt = new Button();
bt.Text="txt";
bt.ID="test";
this.Page.Controls.Add(bt);

  }

解决方案 »

  1.   

    这个是错误的,正确方法:
    if(!IsPostBack)
      {
    Button bt = new Button();
    bt.Text="txt";
    bt.ID="test";
    From1.Controls.Add(bt);

      }
    //From1为你的表单名!!
    即下面的ID名
     <form id="form1" runat="server">
        <div>
        
        </div>
        </form>
      

  2.   

    一般通过Panel来加载显示控件这样也比较容易控制布局
      

  3.   

    if(!IsPostBack)
      {
    Button bt = new Button();
    bt.Text="txt";
    bt.ID="test";
    From1.Controls.Add(bt);

      }改为
    Button bt = new Button();
    bt.Text="txt";
    bt.ID="test";
    From1.Controls.Add(bt);把if(!IsPostBack)去掉,不能加的
      

  4.   

    Button bt = new Button();
    bt.Text="txt";
    bt.ID="test";
    From1.Controls.Add(bt);
      

  5.   

    嗯,每次都要生成的,不过不用担心viewstate,clientid不会变
      

  6.   

    if(!IsPostBack)
      {
    Button bt = new Button();
    bt.Text="txt";
    bt.ID="test";
    this.Page.Controls.Add(bt);

      }
    LZ的这个方法肯定是错误的:
    可以作如下改正:
    在html页面中:
    <body><form><div id="div1" runat="server"></div></form></body>
    在cs页面:
    if(!IsPostBack)
      {
    Button bt = new Button();
    bt.Text="txt";
    bt.ID="test";
    div1.Controls.Add(bt);

      }呵呵
      

  7.   

    楼主,给你一段代码,我在vs2005里测试,单击就弹出提示框,没有问题,你试试,估计vs2003也一样。不要if(!IsPostBack),不然单击以后啥都没有了
    protected void Page_Load(object sender, EventArgs e)
        {
            Button bt = new Button();
            bt.Text = "按纽";
            bt.ID = "bt1";
            bt.Click += new EventHandler(bt_Click);
            Form.Controls.Add(bt);
        }
        private void bt_Click(object sender, EventArgs e)
        {
            Button bt = (Button)sender;
            Response.Write("<script>alert('单击了"+bt.Text+"')</script>");
        }