C# - 动态加载用户控制按钮单击

时间:2012-03-30 11:43:42

标签: c# asp.net user-controls

我遇到了这个问题中指定的几乎相同的问题。任何人都可以为此发布答案吗?问题没有得到明确回答。

Issue with dynamically loading a user control on button click

在上述问题中,他将控件加载到第一个用户控件中的占位符。我的情况略有不同。我的方案是我有一个aspx页面,UserControl1和UserControl2。在一开始,我将UserControl1加载到Page。然后,当用户单击UserControl1中的按钮时,我需要卸载userControl1并将UserControl2加载到Page。

2 个答案:

答案 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;
}