我有多个使用 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
作为已发布数据的一部分(您可以通过 ASP.NET 中的 Form
集合访问):
if (this.IsPostBack && Request.Form["Button1"] != null) {
// do something if the user clicked Button1
}
ASP.NET 自动将服务器控件点击绑定(bind)到 OnClick
中指定的方法属性。它在 Page.Load
之后调用方法完成(有关详细信息,请参阅“ASP.NET Page Life Cycle Overview”)。
如果您要在客户端添加按钮,您可以自己完成所有这些工作。例如,您可以在 Page_PreRender
中“绑定(bind)”动态生成的按钮。 :
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了解该技术。
关于c# - 注册 asp :button click event handler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307955/