1

我有多个用 jQuery 动态创建的 asp:button。

对于他们每个人,我都有OnClick="ibtn_Click".

但是在后面的代码上,我必须在 Page_Load..like.. 上手动注册它们中的每一个button.Click += new EventHandler(this.ibtn_Click);

有没有办法可以自动注册这个处理程序?还是可以用ajax jquery注册它?

谢谢!

4

2 回答 2

2

您不能在客户端浏览器中添加 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 文章

于 2010-11-29T21:54:10.813 回答
0

您的目的是生成动态 asp.net 按钮来调用后面的代码吗?您可以生成 html“提交”按钮 (type=submit) 并从 javascript 调用 webMethods。webmethods 比重定向到你后面的 c# 代码

于 2010-11-29T21:10:00.037 回答