我尝试在www.example.com上动态创建一个按钮asp.net,但无法向其中添加事件。下面有什么错误或缺失?
先谢了
$
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);
5条答案
按热度按时间jaxagkaj1#
阅读有关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
6kkfgxo02#
我认为您试图在这里混合服务器端和客户端事件。
html属性
OnClick
是一个客户端,当用户点击按钮时,它会触发一段JavaScript。当用户点击按钮时,会发生服务器事件OnClick
,它会发回服务器,这允许您将函数(服务器端)挂钩到该事件中。您在寻找服务器端还是客户端?
要添加客户端事件,可以执行以下操作
要添加服务器端事件,可以执行以下操作
其中.MyMethod是一个已设置为处理服务器端按钮单击的方法。
pbgvytdp3#
如果我是对的,您可以在
Page_Load
中创建按钮。如果是,请检查回发。
9bfwbjaz4#
创建一个方法来添加所有的动态控件,如下所示
然后调用IsPostBack块Page_Load()Event & out中的方法,如下所示
因为动态添加控件的视图状态在**Page_Load()**evnt之前不会加载。请通过此链接获取更多信息http://msdn.microsoft.com/en-us/library/vstudio/hbdfdyh7(v=vs.100).aspx
vktxenjb5#
这应该可以达到目的: