0

页面代码:

public partial class Default2 : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        Uctest ctrl = (Uctest) this.LoadControl("Uctest.ascx");
        ctrl.ID = "aaa111";
        Page.Controls.Add(ctrl);
    }
}

Ascx代码:

public partial class Uctest : UserControl
{
    protected void btn1_Click(object sender, EventArgs e)
    {
    }
}

我有一个页面ascx。ascx 包含asp:buttonasp:textbox

我的目标是到达“btn1_Click”事件。

这是有效的。- 当我按下按钮时,它会进入活动并且一切正常。

但我不明白为什么。因为每次回发它都在重新创建控件,所以他怎么知道将按下的事件附加到即将到来的新创建的 ascx 因为回发)?

4

1 回答 1

0

当您回发时,您正在重新创建用户控件。

包含事件方法的是用户控件,设置事件委托的是用户控件,因此每次创建用户控件的实例时,它也创建事件方法并附加到它是有意义的。

于 2011-08-20T08:50:54.170 回答