Событие Loadcontrol работает, но как? - PullRequest
0 голосов
/ 20 августа 2011

Код страницы:

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: button и asp: textbox

Моя цель - достичь события 'btn1_Click'.

это работает.- когда я нажимаю на кнопку, происходит переход к событию, и все нормально.

, но я не могу понять, почему.потому что каждый постбэк это РЕКРЕТАЦИЯ УПРАВЛЕНИЯ СНОВА , так как он знает, как связать нажатое событие с предстоящим новым созданным ascx (из-за постбэка) ??

1 Ответ

0 голосов
/ 20 августа 2011

Когда вы отправляете сообщение обратно, вы воссоздаете пользовательский элемент управления.

Это пользовательский элемент управления, содержащий метод события, и именно пользовательский элемент управления устанавливает делегирование события, поэтомучувствую, что каждый раз, когда вы создаете экземпляр пользовательского элемента управления, он также создает метод события и присоединяется к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...