我有一个问题,没有在asp用户控件中加载jquery.
我只想在单击复选框时添加click事件.
这是我的javascript文件
$(document).ready(function() { var arr = jQuery(":checkbox[id*='drpAccountType']"); for (i = 0; i < arr.length; i += 1) { $("#" + arr[i].id).click(function() { alert(this.id) }); } }); if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
用户控制预渲染事件:
Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender ScriptManager.RegisterClientScriptInclude(Me, Me.GetType, "CheckboxdropdownScript", ResolveUrl("~/Scripts/CheckBoxDropDown.js")) End Sub
脚本加载正常,但jQuery的任何使用都返回undefined.然后只有在加载页面时,我才能在firebug中为commande行执行相同的代码.jquery库加载在母版页中.
每当我在asp用户控件中使用jquery时,我总会发现问题,而且我总是不得不乱用它来使用它.我尝试了stackoverflow中的所有条目,但我从来没有找到一个作为一般解决方案.
任何人发现一个简单的解决方案,使用jquery与母版页,用户控制在asp.net我会很感激,如果有人可以分享这些有价值的信息.
我的经理即将从应用程序中删除jquery,因为我们总是花费大量时间来找到一个解决方法,让它与用户控件一起工作.
请帮助,我喜欢jquery,我真的想将它用于客户端脚本.
最好的祝福
您的脚本可能会在jquery库之前插入页面.(您可以通过检查页面的HTML输出来验证这一点.)
当脚本文件执行JS内联时,特别是当JS依赖于其他库时,最安全的是使用RegisterStartupScript
而不是RegisterClientScriptInclude
.如果使用RegisterStartupScript的这个重载,您可以构造对同一外部JS文件的引用,它将在正确的位置运行.
作为替代方案,您可以在用户控件中使用
标签,ScriptManagerProxy
而不是在Page_Load或Page_Init中注册脚本; 根据我的经验,这些脚本是在母版页的脚本之后添加的.