我有多个用 jQuery 动态创建的 asp:button。
对于他们每个人,我都有OnClick="ibtn_Click".
但是在后面的代码上,我必须在 Page_Load..like.. 上手动注册它们中的每一个button.Click += new EventHandler(this.ibtn_Click);。
有没有办法可以自动注册这个处理程序?还是可以用ajax jquery注册它?
谢谢!
我有多个用 jQuery 动态创建的 asp:button。
对于他们每个人,我都有OnClick="ibtn_Click".
但是在后面的代码上,我必须在 Page_Load..like.. 上手动注册它们中的每一个button.Click += new EventHandler(this.ibtn_Click);。
有没有办法可以自动注册这个处理程序?还是可以用ajax jquery注册它?
谢谢!
您不能在客户端浏览器中添加 ASP.NET Web 控件。ASP.NET 将这些<asp:button>标记转换为常规 HTML,如下所示:
<input type="submit" name="Button1" value="Ok" id="Button1" />
当用户单击其中一个提交控件时,浏览器会发送一个 POST 请求,其中包括按钮name作为发布数据的一部分(您可以通过FormASP.NET 中的集合访问):
if (this.IsPostBack && Request.Form["Button1"] != null) {
// do something if the user clicked Button1
}
ASP.NET 自动将服务器控件单击绑定到OnClick属性中指定的方法。它在完成后调用该方法Page.Load(有关详细信息,请参阅“ ASP.NET 页面生命周期概述”)。
如果您要在客户端上添加按钮,您可以自己完成所有这些操作。例如,您可以“绑定”动态生成的按钮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。有关该技术的介绍,请参阅这篇出色的 Encosia 文章。
您的目的是生成动态 asp.net 按钮来调用后面的代码吗?您可以生成 html“提交”按钮 (type=submit) 并从 javascript 调用 webMethods。webmethods 比重定向到你后面的 c# 代码