2011-01-19 24 views
1

動的にWebユーザーコントロールをロードする必要があります。
http://weblogs.asp.net/srkirkland/archive/2007/11/05/dynamically-render-a-web-user-control.aspxを見ると、ページのライフサイクルイベントが発生していないことが示されています。 私は、リフレクションを通してイベントを起こすことができると思いました。私はイベントを起こす方法を考え出すことができません、私は何かを逃していますか?動的ロードされたWebユーザーコントロール内のLoadイベントの発生

Podge

答えて

0

おかげであなたはRenderControlを呼び出す前に、このような何かを行うことができます。

ページページ=新しいページ();

page.Controls.Add(report);

この場合、Initメソッドが呼び出されます。

あなたのリンクに回答があります

+1

申し訳ありませんが、イベントは発生していません。 – Podge

0

標準のLoadイベントはうまくいきます。標準ASP.Netコントロールイベントは、usercontrolsのために発生します。親ページからユーザコントロール内のイベントを発生させたい場合は、次のようにします。

イベントの作成とワイヤリングを行います。この例では、私は、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. 
} 

希望!!

関連する問題