【发布时间】:2017-06-28 05:25:26
【问题描述】:
我从后面的代码创建了一个按钮:
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 方法中创建它。
【问题讨论】:
-
也许你应该使用 JavaScript 而不是 C# 来实现这种动态。而且如果你使用MVC,实现动态也更容易。
-
@LeiYang 不知道 MVC。你能举个Javascript例子吗?问题是为列表中的每个项目创建了dynamicPanel。所以页面上有几个。
-
Webforms 已经过时了,它不是 Winform 所以现在最好从 MVC 开始。
-
@LeiYang 对不起,做不到。该网站已经在运行。这里的工作只是添加自定义功能。
-
@matt2605:您使用代码隐藏而不是在客户端编写事件处理程序的原因是什么?