1

我使用下面LinkButton的代码添加代码,但是当我点击每个链接按钮时,点击事件不会调用,但如果我删除if(!IsPostBack)工作正常

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            this.sr();
        }//if
    }

    void sr()
    {
        LinkButton lnk;
        for (int i =1; i < 6; i++)
        {
            lnk = new LinkButton();
            lnk.ID="lnk"+i.ToString();
            lnk.Text = i.ToString() + "&nbsp;&nbsp;&nbsp;&nbsp;";
            lnk.Click += new EventHandler(lnk_Click);
            this.pnl.Controls.Add(lnk);
 }
    }

    void lnk_Click(object sender, EventArgs e)
    {
        LinkButton lnk = (LinkButton)sender;
        lnk.Text = "Clicked";
    }
4

3 回答 3

0

您的函数被调用两次,因为它包含在 page_load 和 page_init 中。从 page_load 中删除它。回发将始终查找发生的更改并尝试重建页面,以便每次都重建来自代码后面的控件。

于 2012-11-28T06:45:40.283 回答
0

您正在动态创建一个链接按钮

您必须在Page_Init函数中调用 sr() ,例如...

void Page_Init(object Sender, System.EventArgs e)
{
  sr();
}

请检查这个

于 2012-11-28T06:34:56.083 回答
0

向页面动态添加控件时,必须在每次加载页面时添加它们。理想情况下,这应该在 Page 初始化事件中完成。这就是您的代码在删除 !Page.IsPostBack 条件时起作用的原因。

于 2012-11-28T06:38:23.610 回答