私は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_Load
Outer
foo
foo
null
Page_Load
foo
null
これは起こりません。代わりに、、、または--Page_Load
のいずれかで、アクセスすると常に. ただし、ページがブラウザーに読み込まれると、of が完全に実行されてからof が読み込まれるため、外側のコントロール ( を設定する) の後に実行されることがわかっている内側のコントロールを呼び出すと、なぜまた困惑します。Inner1
Inner2
Inner3
foo
null
Page_Load
Outer
Page_Load
InnerX
foo
null
Page_Load
foo
DoStuff()
外部から呼び出しを削除し、Page_Load
個々の内部に移動するとPage_Load
、正常に機能します。私はこれを避けたいと思います。