新建一个页面,拖一个按钮出来,双击该按钮,写下下面这句话
  protected void Button1_Click(object sender, EventArgs e)
    {
           LinkButton btn = new LinkButton();
            btn.Text = "xx";
            btn.Click += delegate
            {
                Response.Write("ssxx");
            };
            this.form1.Controls.Add(btn);
       
    }
可是  btn.Click += delegate
            {
                Response.Write("ssxx");
            };永远都不会执行,请问是怎么一回事?

解决方案 »

  1.   

    这个与asp.net页面生存周期有关,必须在render之前重新创建这些控件,才可以接收到事件
      

  2.   

    怎么会不执行? 你打断点跟了吗??   
        如果 点击后页面没有反应的话 !那么也只可能是因为 
     Response.Write  这句影响的
      

  3.   

    以前遇到过这问题,当时好像按2003那种写法解决的吧,好像得初始化一下不然好像不知道 delegate 存在
      

  4.   

    protected void Page_Load(object sender, EventArgs e)
        {        Button btn = new Button();
            btn.Text = "xxddddd";
            btn.ID = "l1";
            btn.Click += delegate 
            { 
                Response.Write("ssxx"); 
            };         this.form1.Controls.Add(btn);
            
        }
      

  5.   

    生命周期的问题,在执行click之前就已经初始化控件结束了,我是这样认为的
      

  6.   

    我问你啊,你的linkbutton是什么时候创建的?是不是点击第一个按钮button1时产生的,当你第二次利用linkbutton回传时,button1并没有被点击,那么这个linkbutton也就没有被创建,那么如何会执行它的click代理函数?