C# 动态生成的按钮单击未被调用?

C# 动态生成的按钮单击未被调用?,c#,asp.net,C#,Asp.net,我在动态生成按钮时关联了一个按钮ID,并创建了一个按钮事件处理程序,如下所示: btn.Click += new EventHandler(btn_Click); 按钮单击事件: protected void btn_Click(object sender,EventArgs e) { Button b = new Button(); b = (Button)sender; string i = b.ID.Substring(b.ID.Length - 1, 1);

我在动态生成按钮时关联了一个按钮ID,并创建了一个按钮事件处理程序,如下所示:

btn.Click += new EventHandler(btn_Click);
按钮单击事件:

protected void btn_Click(object sender,EventArgs e)
{
    Button b = new Button();
    b = (Button)sender;
    string i = b.ID.Substring(b.ID.Length - 1, 1);
    int j1 =Convert.ToInt32(i);
    id1 = to[j1];
    Page.ClientScript.RegisterClientScriptBlock(Type.GetType("System.String"), 
        "addScript", "PassValues('" + id1 + "')", true);
    ScriptManager.RegisterStartupScript(this, this.GetType(), 
       "sendMessage", "javascript:sendMessage(); ", true);
}
但是,不会调用此事件。我已将所有控件放置在UpdatePanel中

编辑:发生的事情是在按钮上单击某个函数,该函数被调用,出现在
页面上。加载

protected void getEntriesRight()
{
    j = (int)Session["j"];

    int n1 = j + 3;

    for (; j <= n1; j++)
    {
        if (j < fr.data.Length)
        {
            HtmlGenericControl listItem = new HtmlGenericControl("li");
            HtmlGenericControl a1 = new HtmlGenericControl("a");
            Label anchor = new Label();
            Image im = new Image();

            btn = new Button();
            im.ImageUrl = fr.data[j].pic_square;
            im.Height = 45;
            im.Width = 47;


            btn.CssClass = "btn-add";
            btn.Text = "Invite";
            to[j] = fr.data[j].uid;

            btn.ID = "btn" + j;


            a1.Attributes.Add("href", "#");
            anchor.Text = fr.data[j].name;
            a1.Controls.Add(btn);
            a1.Controls.Add(im);
            a1.Controls.Add(anchor);
            listItem.Controls.Add(a1); 
            list.Controls.Add(listItem);

                btn.Click += new EventHandler(btn_Click);

        }
    }

    Session["j"] = j;
}
受保护的void getEntriesRight()
{
j=(int)会话[“j”];
int n1=j+3;

对于(;j),必须在每次回发时重新创建动态生成的控件,以便触发它们的事件。这是在.NET中以编程方式生成控件时最常见的问题之一,如果您能找到解决方法,则不建议这样做

例如,如果您有一个按钮,该按钮只应在单击另一个按钮时出现,请在页面中以该按钮开始,并使用
Visible
属性控制是否显示该按钮



关于您的编辑。即使在
更新面板
中,返回服务器的每一篇帖子都将调用
页面加载
。如果您想检测请求是否来自
更新面板
,则需要在调用函数之前检查
!Page.IsAsync

这并不是我的问题所在现在正在发生的是另一个函数,而不是调用此方法。我不知道为什么:/n我们需要查看您是如何创建
btn