私はOuter とUserControl呼ばれるアウターUserControlを持つプロジェクトに取り組んでおり、そのコードで静的にロードするインナーを決定するロジックを実行します。いくつかの内部コントロールがあり、それらをInner1、Inner2、およびInner3と呼びましょう。
すべての内部コントロールは外部コントロールを継承するため、次のようになります。
Outer : System.Web.UI.UserControl
Inner1 : Outer
Inner2 : Outer
Inner3 : Outer
内部コントロールがアクセスするいくつOuter.csかのフィールドとメソッドがあります。
List<string> foo = null;
protected void Page_Load(object sender, EventArgs e)
{
}
public void DoStuff()
{
foo = MethodToPopulateFoo(); // this always works and returns a List<string> even if its empty
// other stuff here
}
さて、ここに私の問題があります。 ofを呼び出すDoStuff()と、実行されると予想され、リストに設定され、 ではなくなります。次に、内部コントロールのいずれかが実行されると、それらのそれぞれにアクセスできますが、アクセスできません。Page_LoadOuterfoofoonullPage_Loadfoonull
これは起こりません。代わりに、、、または--Page_Loadのいずれかで、アクセスすると常に. ただし、ページがブラウザーに読み込まれると、of が完全に実行されてからof が読み込まれるため、外側のコントロール ( を設定する) の後に実行されることがわかっている内側のコントロールを呼び出すと、なぜまた困惑します。Inner1Inner2Inner3foonullPage_LoadOuterPage_LoadInnerXfoonullPage_Loadfoo
DoStuff()外部から呼び出しを削除し、Page_Load個々の内部に移動するとPage_Load、正常に機能します。私はこれを避けたいと思います。