我有多个asp:我用jQuery动态创建的按钮。
对于他们每个人,我都有OnClick="ibtn_Click"
。
但是在后面的代码中,我必须在Page_Load..like .. button.Click += new EventHandler(this.ibtn_Click);
上手动注册它们中的每一个。
有没有办法可以自动注册这个处理程序?或者是否可以使用ajax jquery注册它?
谢谢!
答案 0 :(得分:2)
您无法在客户端的浏览器中添加ASP.NET Web控件。 ASP.NET将这些<asp:button>
标记转换为常规HTML,如下所示:
<input type="submit" name="Button1" value="Ok" id="Button1" />
当用户点击其中一个提交控件时,浏览器会发送一个POST请求,其中包含按钮的name
作为发布数据的一部分(您可以通过ASP中的Form
集合访问该按钮.NET):
if (this.IsPostBack && Request.Form["Button1"] != null) {
// do something if the user clicked Button1
}
ASP.NET自动将服务器控件点击绑定到OnClick
属性中指定的方法。它在Page.Load
完成后调用该方法(有关详细信息,请参阅“ASP.NET Page Life Cycle Overview”)。
如果您在客户端添加按钮,则可以自己完成所有操作。例如,您可以在Page_PreRender
中“绑定”动态生成的按钮:
protected void Page_PreRender(object sender, EventArgs e) {
if (this.IsPostBack && Request.Form["Button1"] != null) {
// Call another method on the page
}
}
最后,在这个时代,如果合适,你应该考虑通过jQuery的ajax
来调用页面方法。有关该技术的介绍,请参阅this excellent Encosia article。
答案 1 :(得分:0)
您的目的是生成动态asp.net按钮来调用代码吗? 你可以生成html“提交”按钮(type = submit)并从javascript调用webMethods。 webmethods被重定向到你后面的c#代码