Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-动态加载-用户控制-点击按钮_C#_Asp.net_User Controls - Fatal编程技术网

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