Вызов события Load в динамически загруженном веб-контроле пользователя - PullRequest
1 голос
/ 19 января 2011

Мне нужно динамически загрузить веб-элемент управления.
Глядя на http://weblogs.asp.net/srkirkland/archive/2007/11/05/dynamically-render-a-web-user-control.aspx,, говорится, что события жизненного цикла страницы не запускаются.Я думал, что смогу поднять события через размышления.Я не могу понять, как запустить события, я что-то упустил?

Спасибо

Podge

Ответы [ 2 ]

0 голосов
/ 19 января 2011

Стандартное событие Load должно срабатывать очень хорошо. Стандартные события управления ASP.Net генерируются для пользовательских контролей. Если вы хотите запускать события внутри вашего usercontrol с родительской страницы, тогда вам нужно сделать что-то вроде этого:

Внутри вашего usercontrol создайте событие и подключите его. В этом примере я позвоню из Page_Load:

 public event EventHandler TestEvent;

protected void Page_Load(object sender, EventArgs e)
{
   if (this.TestEvent != null)
       {
           this.TestEvent(this, e);
       }
}

Внутри вашей родительской страницы подключите пользовательские элементы управления TestEvent:

protected override void OnInit(EventArgs e)
{
    MyUserControl uc = LoadControl("~/PathToUserControl.ascx");
    uc.TestEvent += new EventHandler(MyUserControl_TestEvent);
}

protected void MyUserControl_TestEvent(object sender, EventArgs e)
{
    //this code will execute when the usercontrol's Page_Load event is fired.
}

Надеюсь, это поможет !!

0 голосов
/ 19 января 2011

Вы можете сделать что-то вроде этого перед вызовом RenderControl:

Page page = new Page ();

page.Controls.Add (report);

В этомcase метод Init будет вызван.

ответом по вашей ссылке

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