我有一个用户控件“UserApplianceControl”,我需要将其动态添加到asp 页面。
我正在使用以下代码这样做:
用户.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(above),因此在最后一次加载页面时填充的那些控件被重新创建,并且在处理事件之前我丢失了旧的。
为什么事件没有在 OnLoadComplete 之前触发?