Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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# asp.net中的动态按钮-未激发EventHandler_C#_Asp.net_Button_Dynamic - Fatal编程技术网

C# asp.net中的动态按钮-未激发EventHandler

C# asp.net中的动态按钮-未激发EventHandler,c#,asp.net,button,dynamic,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

我从代码隐藏创建了一个按钮:

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);
}  
当我单击该按钮时,会出现回发(IsPostback with Javascript alert),但不会触发EventHandler。我可以说,如果这是一个线索,页面上可见的内容就会消失


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

您的代码在我看来有点奇怪,但对于“当我单击按钮时,该方法未被激发”的问题:尝试将该方法重命名为
dynamicButton\u click()
dynamicButton\u click()


我假设您的代码中已经有一个方法
dynamicButton\u Click()
;否则,您无法编译。但是,您通过
dynamicButton.Click+=neweventhandler(…)注册的方法
是您调用的方法。您向我们展示的代码在这方面不匹配。

也许您应该使用JavaScript而不是C来实现这种动态。如果你使用MVC,实现动态也更容易。@LeiYang不懂MVC。你能举个Javascript的例子吗?问题是为列表中的每个项目创建了dynamicPanel。页面上有几个这样的页面。Webforms已经过时了,它不是Winform,所以最好现在就从MVC开始。@LeiYang抱歉,不能这样做。该网站已在运行。这里的工作只是添加自定义功能。@matt2605:为什么您使用代码隐藏而不是在客户端编写事件处理程序?我已经将编辑dynamicButton_Click()设置为dynamicButton_Click()。你是对的,否则它不会编译。我只想在正确设置代码之前先让按钮工作。我再次编辑了它以澄清“被解雇”的含义。