我正尝试在asp.net上动态创建一个按钮,但我无法将事件添加到下面的it.What是否错误或缺失?
提前感谢
$
Button btn2 = new Button();
btn2.ID = "btnEdit";
btn2.Text = "Edit Member";
btn2.Click += new EventHandler(btnEdit_Click);
form1.Controls.Add(btn2);
我也试过这样做:
$
Button btn2 = new Button();
btn2.ID = "btnEdit";
btn2.Text = "Edit Member";
btn2.Attributes.Add("OnClick","btnEdit_Click);
form1.Controls.Add(btn2);
发布于 2012-07-09 18:53:36
我认为你试图在这里混合服务器端和客户端事件。
html属性OnClick
是一个客户端,当用户单击按钮时它会触发一段JavaScript服务器事件OnClick
在用户单击按钮并回发到服务器时发生,这允许您将函数(服务器端)挂钩到该事件中。
你是在寻找服务器端还是客户端?
要添加客户端事件,您可以执行以下操作
btn2.Attributes.Add("onclick","my_javascript_function");
要添加服务器端事件,可以执行以下操作
btn2.Click += new System.EventHandler(this.MyMethod);
其中this.MyMethod是一个已经被seutp用来处理服务器端按钮点击的方法。
发布于 2012-07-09 18:58:25
请阅读有关asp.net webforms生命周期http://msdn.microsoft.com/en-us/library/ms178472.aspx的文章。每次加载页面时,您都必须创建/重新创建控件(例如OnLoad-Method)
http://www.asp.net/web-forms/videos/aspnet-ajax/how-to-dynamically-add-controls-to-a-web-page
发布于 2012-07-09 19:56:17
如果我是对的,你可以在Page_Load
中创建按钮。
如果是,请检查是否有回发。
if(!postback)
{
create your buttons.
}
https://stackoverflow.com/questions/11393543
复制相似问题