ASPページに動的に追加する必要があるユーザーコントロール「UserApplianceControl」があります。
私は次のコードでそうしています:
ユーザー.aspx.cs
protected override void OnLoadComplete(EventArgs e)
{
base.OnLoadComplete(e);
A5Lib.User u;
UserServiceReference.UserServicesClient myProxy = new UserServiceReference.UserServicesClient();
u = myProxy.GetUser("user1");
if (listOfAppliances != null)
{
foreach (A5Lib.Appliance str in u.Appliances)
{
UserApplianceControl uac = (UserApplianceControl)LoadControl("UserApplianceControl.ascx");
uac.setAppliance(str);
Panel1.Controls.Add(uac);
}
}
}
UserApplianceControl には、いくつかのボタンがあります。ただし、ボタンを押すたびに、ユーザー コントロールのボタン ハンドラーが呼び出されることはありません。実際、OnLoadComplete(上記) が最初に呼び出されるため、最後のページの読み込み時に設定されたコントロールが再作成され、イベントを処理する前に古いコントロールが失われます。
OnLoadComplete の前にイベントが発生しないのはなぜですか?