C# 如何捕获动态加载控件的onclick事件?

C# 如何捕获动态加载控件的onclick事件?,c#,asp.net,user-controls,C#,Asp.net,User Controls,我有一个dropdownlist(在第页上),它有一个OnSelectedIndexChange事件,它每次(使用LoadControl命令)动态地将不同的控件(ascx)加载到页面中 每个控件都有一个按钮(runat=server)和文本框(runat=server) 当我点击按钮时,我无法进入Onclick功能 如何进入Ascx的OnClick函数 我知道每个SelectedIndexChange都会进行回发,所以我知道我必须在viewstate中保存一些内容。但我不知道如何保存它,然后在T

我有一个dropdownlist(在第页上),它有一个OnSelectedIndexChange事件,它每次(使用LoadControl命令)动态地将不同的控件(ascx)加载到页面中

每个控件都有一个按钮(runat=server)和文本框(runat=server)

当我点击按钮时,我无法进入Onclick功能

如何进入Ascx的OnClick函数


我知道每个SelectedIndexChange都会进行回发,所以我知道我必须在viewstate中保存一些内容。但我不知道如何保存它,然后在TexstBox上获取值eneterd。(每个ascx的)

您需要向用户控件添加一个事件处理程序,如下所示:

public event EventHandler ButtonClick;
<UC:MyUserControl ID="UserControl1" runat="server" OnButtonClick="UserControl1_ButtonClick" ... />

protected void UserControl1_ButtonClick(object sender, EventArgs e)
{
   //Handle the click event here
}
在按钮的单击事件中:

protected void Button1_Click(object sender, EventArgs e)
{
    if (this.ButtonClick != null)
        this.ButtonClick(this, e);
}
然后,从页面中,您可以获得如下单击事件:

public event EventHandler ButtonClick;
<UC:MyUserControl ID="UserControl1" runat="server" OnButtonClick="UserControl1_ButtonClick" ... />

protected void UserControl1_ButtonClick(object sender, EventArgs e)
{
   //Handle the click event here
}

您需要向用户控件添加事件处理程序,如下所示:

public event EventHandler ButtonClick;
<UC:MyUserControl ID="UserControl1" runat="server" OnButtonClick="UserControl1_ButtonClick" ... />

protected void UserControl1_ButtonClick(object sender, EventArgs e)
{
   //Handle the click event here
}
在按钮的单击事件中:

protected void Button1_Click(object sender, EventArgs e)
{
    if (this.ButtonClick != null)
        this.ButtonClick(this, e);
}
然后,从页面中,您可以获得如下单击事件:

public event EventHandler ButtonClick;
<UC:MyUserControl ID="UserControl1" runat="server" OnButtonClick="UserControl1_ButtonClick" ... />

protected void UserControl1_ButtonClick(object sender, EventArgs e)
{
   //Handle the click event here
}

我需要在帖子背面重新创建它,但也要获取它的值。一些朋友告诉我它的“控件状态”…???如果你在重新创建控件时给它分配了相同的ID,那么应该为你重新填充这些值。@James:删除了我的。这是一个更完整的答案。我相信,如果在OnPreInit或OnPreLoad中对控件进行重新水化,您将能够获得OnClick。按钮单击事件应在页面发回并重新生成控件后触发。您正在OnPreInit事件中重新创建它们,但值是按控件ID存储的。重新创建控件并为其分配ID时,与该ID对应的值将重新加载到控件中。我需要在回发邮件时重新创建它,但也要获取它的值。一些朋友告诉我它的“控件状态”…???如果在重新创建控件时将相同的ID分配给该控件,则应为您重新填充这些值。@James:删除了我的。这是一个更完整的答案。我相信,如果在OnPreInit或OnPreLoad中对控件进行重新水化,您将能够获得OnClick。按钮单击事件应在页面发回并重新生成控件后触发。您正在OnPreInit事件中重新创建它们,但值是按控件ID存储的。重新创建控件并为其分配ID时,与该ID对应的值将重新加载到控件中。