C#-动态加载-用户控制-点击按钮
我遇到了与此问题中指定的问题几乎相同的问题。有人能把答案贴出来吗?这个问题没有得到明确的回答C#-动态加载-用户控制-点击按钮,c#,asp.net,user-controls,C#,Asp.net,User Controls,我遇到了与此问题中指定的问题几乎相同的问题。有人能把答案贴出来吗?这个问题没有得到明确的回答 在上述问题中,他正在将控件加载到第一个用户控件中的占位符中。我的情况略有不同。我的场景是我有一个单一的aspx页面,UserControl1和UserControl2。首先,我将把UserControl1加载到第页。然后,当用户单击userControl1中的按钮时,我需要卸载userControl1并将UserControl2加载到页面。事件必须在页面加载中注册,不能迟于此。控件是在事件处理期间创建
在上述问题中,他正在将控件加载到第一个用户控件中的占位符中。我的情况略有不同。我的场景是我有一个单一的aspx页面,UserControl1和UserControl2。首先,我将把UserControl1加载到第页。然后,当用户单击userControl1中的按钮时,我需要卸载userControl1并将UserControl2加载到页面。事件必须在页面加载中注册,不能迟于此。控件是在事件处理期间创建的,其事件未注册。 看一看:
您需要为
UserControl1
创建一个自定义事件处理程序,并在单击按钮时将事件冒泡到页面
为UserControl1
创建自定义事件处理程序:
public event EventHandler UpdateButtonClick;
public void OnUpdateButtonClick(EventArgs e)
{
if (UpdateButtonClick!= null)
UpdateButtonClick(this, e);
}
<uc:UserControl1 ID="UserControl1" runat="server"
OnUpdateButtonClick="UserControl1_UpdateButtonClick" ... />
为用户控件1分配事件处理程序:
public event EventHandler UpdateButtonClick;
public void OnUpdateButtonClick(EventArgs e)
{
if (UpdateButtonClick!= null)
UpdateButtonClick(this, e);
}
<uc:UserControl1 ID="UserControl1" runat="server"
OnUpdateButtonClick="UserControl1_UpdateButtonClick" ... />
你到底不明白什么?您尝试了什么?@walther-在标记的答案中,“~/UserCtrl2.ascx”正在从Button1\u Click()事件添加到占位符2中。但是占位符2出现在Default.aspx中,按钮1出现在UserCtrl1.ascx中。我认为SecondControlLoaded viewstate与Default.aspx.cs相关联。但是在那里,它链接在UserCtrl1.ascx.cs中,请在标记的答案中查看Kumar的评论。“您可以发布完整的代码吗?我猜SecondControlLoaded是UserCtrl1中的一个bool属性,它将值保存到viewstate…”如果您可以发布完整的代码,这将非常有帮助。很抱歉回复太晚。但我仍然需要加载页面加载中的所有用户控件,对吗?是的,您也可以动态加载它们。但是,我将重写
OnInit
,并将它们添加到那里的控件集合中,而不是Page\u Load
。