ASP.Net AJAX多页面加载功能可能吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (47)

我有一个注入JavaScript pageLoad函数的ASP.Net控件。我也pageLoad直接在页面上有一个功能。我似乎无法让他们都运作。你是否仅限于在JavaScript中具有相同名称的单个函数?

提问于
用户回答回答于

是的。与大多数语言一样,JavaScript要求符号在其范围内是唯一的。在JavaScript中,如果为给定范围内的函数创建多个定义,那么最后一个定义为“胜利” - 就像以前的定义从不存在一样。

为了使冗余pageLoad功能正常工作,需要做的是使用该Sys.Application.add_load()方法。使用它,可以根据需要添加尽可能多的处理程序,以便进行页面加载事件。更重要的是,你可以使用匿名函数来添加add_load方法。这样做可以保证不会遇到名称重复的处理程序。例:

StringBuilder sb = new StringBuilder();
  sb.Append("Sys.Application.add_load(");
  sb.Append("function() { alert('page load'); });");

ClientScript.RegisterStartupScript(this.GetType(), "Page_Load", sb.ToString(), true);

可以轻松地在客户端使用Sys.Application.add_load,甚至可以多次添加相同的处理程序。这将导致多次触发相同的功能:)

用户回答回答于

我不同意Shog9 ......

我知道在单个文档中可能有多个$(document).ready(f(n))调用,每个DOM在完成加载后都会依次调用每个文档。我不相信对ClientScript.RegisterStartupScript()的多次调用也会导致任何问题。

扫码关注云+社区

领取腾讯云代金券