Controlクラス(Standard)から動的にロードされる別のユーザーコントロール(Header)内にネストされたユーザーコントロール(Navigation)があります。
ユーザーコントロール、ナビゲーションおよびヘッダーにはAutoEventWireup=falseがあります。
コントロールクラスのStandard呼び出しは、構成アイテムからヘッダーユーザーコントロールをロードします。
private void layoutAndRender(HtmlTextWriter output, string UserControlKey, NameValueCollection UserControlsConfiguration)
{
if(UserControlsConfiguration[UserControlKey] != null && UserControlsConfiguration[UserControlKey].ToString() != "")
{
string suc = System.Web.HttpContext.Current.Request.ApplicationPath + UserControlsConfiguration[UserControlKey].ToString();
UserControl ucToRender = (UserControl)this.Page.LoadControl(suc);
ucToRender.RenderControl(output);
}
}
私の問題は、Page.RequestとPage.Responseを受け入れることができるNavigationユーザーコントロールのオブジェクトを初期化したいのですが、Navigationコードビハインドでイベントが発生していないようです。
オブジェクトを初期化するために使用しているコードは次のとおりです。
this.browser = new Browser(this.Request, this.Response);
Navigationコンストラクターでこれを実行しようとしましたが、this.Requestとthis.Responseがその時点で設定されていません。
メソッドでステートメントを使用しようとしましたが、Navigationコンストラクターを使用しvoid Page_Load(object sender, System.EventArgs e)
ていても、これは起動していないようです。this.Load += new System.EventHandler(this.Page_Load);
Page_InitとPage_PreRenderについても同様のステートメントを試しましたが、いずれも起動していないようです。
LoadControlがロードされたコントロールは、ロードした方法でロードされた場合、LoadイベントまたはInitイベントを発生させません。同じことが、含まれている可能性のあるすべてのユーザーコントロールにも当てはまりますか?