asp.net中的动态按钮 - 不会触发EventHandler

时间:2017-02-10 00:44:59

标签: c# asp.net button dynamic

我从后面的代码创建了一个按钮:

Panel dynamicPanel = new Panel();
Button dynamicButton = new Button();
dynamicButton.Text = "View";            
dynamicButton.Click += new EventHandler(dynamicButton_Click);
dynamicPanel.Controls.Add(dynamicButton);
dynamicDiv.Controls.Add(dynamicPanel);

OnClick方法:

protected void dynamicButton_Click(object sender, EventArgs e)
{
    Response.Write("view button response");
    string script = "alert(\"view clicked.\");";
    ScriptManager.RegisterStartupScript(this, GetType(), 
        "ServerControlScript", script, true);
}  

当我点击按钮时,会有回发(带有Javascript警报的IsPostback),但不会触发EventHandler。我可以说,如果这是一个线索,页面上可见的内容就会消失。

我需要在自定义的受保护的void方法中创建它。

1 个答案:

答案 0 :(得分:1)

你的代码对我来说看起来有点奇怪,但至于问题"当我点击按钮时,方法不会被触发":尝试将方法dynamicREGButton_Click()重命名为{{1} }。

我假设您的代码中已经有方法dynamicButton_Click();否则,你无法编译。但是,您通过dynamicButton_Click()注册的方法是您调用的方法。您向我们展示的代码在这方面并不匹配。