asp.net-ajax – Sys.Application.add_load()vs. $(document).re
我有页面有一些javascript需要在页面加载运行。说javascript需要定位ServerControl的客户端组件,它使用$ find()。
当然,如果我将我的代码直接发送到页面上,它会在页面被读取时执行,并且失败,因为它依赖的没有被初始化。 如果我把我的代码放在一个pageLoad()函数,它运行很好,因为asp.net自动连接一个onload处理程序的任何函数名为pageLoad()。问题是我真的不喜欢pageLoad()解决方案 – 主要是因为它是一个单一的全局名称。如果我使用pageLoad()提交一些代码,我只知道一些其他程序员要复制的方法,在某个地方不合适,我们将最终得到一个页面,包括两个或更多不同的pageLoad()函数,结果将是一堆神秘的错误,将永远追踪下来。 所以,我把我的代码放在一个匿名函数传递给jquery的$(document).ready()。这会失败,因为它在ServerControl的客户端组件存在之前运行。 所以,我把我的代码在一个匿名函数传递给Sys.Application.add_load()。这也失败,因为Sys是未定义的。 所以我最后决定把我的代码放在Sys.Application.add_load()中,然后把它放在一个由$(document).ready()调用的函数中。这工作,但它给出几乎与pageLoad()一样多的胃灼热。 <script type="text/javascript"> $(document).ready(function(){ Sys.Application.add_load(function(){ var component = $find(<clientid>); if (component) { <do something> } }); }); </script> 必须有一个更好的方法来处理这个。 有任何想法吗? 解决方法
如果您可以控制代码隐藏,您可以注册JavaScript以在启动时运行,例如:
this.Page.ClientScript.RegisterStartupScript( this.GetType(),"StartupScript","Sys.Application.add_load(function() { functioncall(); });",true); 只要你的组件通过Sys.Application.add_init()加载你应该很好… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET Verses Winforms
- ASP.NET MVC如何连接到ASP.NET?
- log4net 日志框架的配置
- asp.net-mvc-3 – MVC 3上的单元测试控制器为结果返回null,
- asp.net-mvc – 如何使用EF Code First解释为枚举类型
- 如何找出重新启动ASP.NET Web应用程序的原因
- 如何在Asp.Net MVC 2中通过JQuery调用重载的C#函数
- 尝试使用VS和IIS Express在本地设置HTTPS时出现连接重置错误
- asp.net-mvc – 在Razor中输出单引号生成的JavaScript字符串
- asp.net-mvc-4 – 重载Html.LabelFor以添加’后缀’的简单方
- 无法从asp.net代码后面调用jquery函数
- Asp.net静态可变生命周期刷新和PostBack
- asp.net – 当页面用鼠标悬停在元素上时,jQuery触
- ASP.NET MVC:数据注释验证足够了吗?
- Autofac和ASP.NET Web API ApiController
- asp.net – 使index.html显示而不是Default.aspx
- asp.net-mvc-5.1 – 如何在EnumDropDownListFor中
- asp.net – #Eval if语句在中继器
- asp.net – mvc部署需要哪些文件?
- asp.net-core – asp.net核心身份中的多个&S