页面上的 linkbutton 是动态生成的, 代码如下:for (int i=0; i<10; i++)
{
   lnkbtn = new LinkButton();
   lnkbtn.Text = Convert.ToString(i+1);
   lnkbtn.Click += new System.EventHandler(this.LinkBtn);  // LinkBtn 方法已经写好
}问题: 不知道为什么, 在页面中点击上面动态生成的 linkButton 的时候, 要点击两次才会执行 LinkBtn 方法里面的代码, 点击第一次的时候, 执行完 Page_Load 的事件就完了, 点击第二次才会正常地执行 LinkBtn 的代码, 请高手指点一二, 谢谢!!~~~

解决方案 »

  1.   

    没有看到你将Linkbutton加入到页面的代码 当你在PostBack后加入的控件 ,再次postback的时候页面并不会保存 该控件
    你应该在page_load内增加控件
      

  2.   

    代码是没有问题的
    代码和page_load可能有点问题。
      

  3.   

    代码类似于下面:private void Page_Load(object sender, System.EventArgs e)
    {
       if (!Page.IsPostBack)
       {
          GenerateLinkButton();
       }
       else
       {
          GenerateLinkButton();
       }
    }private void GenerateLinkButton()
    {
     for (int i=0; i<10; i++)
     {
       lnkbtn = new LinkButton();
       lnkbtn.Text = Convert.ToString(i+1);
       lnkbtn.Click += new System.EventHandler(this.LinkBtn);  // LinkBtn 方法已经写好
     }
    }问题就像上面描述的那样, 请高手指点一二, 谢谢!~~~
      

  4.   

    改成试试:
    private void Page_Load(object sender, System.EventArgs e)
    {
       if (!Page.IsPostBack)
       {
          GenerateLinkButton();
       }
    }
      

  5.   

    动态生成控件不能放在if(!IsPostBack)中!你把它放出来就可以了!
    private void Page_Load(object sender, System.EventArgs e)
    {
       GenerateLinkButton();
    }
      

  6.   

    我看过一文章,解决办法是对动态生成控件后,要对其id赋值.如mycontrol.id="abc".