我遇到了这个问题中指定的几乎相同的问题。任何人都可以为此发布答案吗?问题没有得到明确回答。
Issue with dynamically loading a user control on button click
在上述问题中,他将控件加载到第一个用户控件中的占位符。我的情况略有不同。我的方案是我有一个aspx页面,UserControl1和UserControl2。在一开始,我将UserControl1加载到Page。然后,当用户单击UserControl1中的按钮时,我需要卸载userControl1并将UserControl2加载到Page。
答案 0 :(得分:0)
必须在页面加载时注册事件。您的控件是在事件处理期间创建的,其事件未注册。 看一看: http://msdn.microsoft.com/en-us/library/ms178472.aspx
答案 1 :(得分:0)
您需要为UserControl1
创建自定义事件处理程序,并在单击按钮时将事件冒泡到页面。
为UserControl1
创建自定义事件处理程序:
public event EventHandler UpdateButtonClick;
public void OnUpdateButtonClick(EventArgs e)
{
if (UpdateButtonClick!= null)
UpdateButtonClick(this, e);
}
为UserControl1
分配事件处理程序:
<uc:UserControl1 ID="UserControl1" runat="server"
OnUpdateButtonClick="UserControl1_UpdateButtonClick" ... />
在代码隐藏中处理事件:
protected void UserControl1_UpdateButtonClick(object sender, EventArgs e)
{
UserControl1.Visible = false;
UserControl2.Visible = true;
}