私はまったく同じ問題に遭遇し、5〜6時間ほど苦労しました. 私はこれを投稿しています。私のような誰かが助けを得ることができるかもしれません。
1) Page.PreInit イベントでコントロールを初期化する必要があります。(私の場合、コントロールをプレースホルダーに追加する必要があったため、PreInit を拡張してそれらのコントロールをロードするようにしましたが、その必要はありません。シナリオによって異なります。)
2) Page.PreInit イベントでそれらを初期化した後、これらの正確なメソッドをコントロールにバインドする必要があります。
ここに私のサンプルコードがあります:
protected override void OnPreInit(EventArgs e)
{
// Loading controls...
this.PrepareChildControlsDuringPreInit();
// Getting ddl container from session and creating them...
if (GetDDLSession().Count != 0)
{
foreach (DropDownList ddl in GetDDLSession())
{
ddl.SelectedIndexChanged += SelectedIndexChanged;
phDropDowns.Controls.Add(ddl);
}
}
base.OnPreInit(e);
}
public static void PrepareChildControlsDuringPreInit(this Page page)
{
// Walk up the master page chain and tickle the getter on each one
MasterPage master = page.Master;
while (master != null) master = master.Master;
}