从ASP.NET用户控件ascx页面加载jQuery?

时间:2013-06-05 13:46:36

标签: jquery asp.net

你能把jQuery代码放在.ascx页面吗?

我有一个用户控件,我在ASP.NET项目中使用。当我在default.aspx页面上选择某些内容时,动态创建该控件的多个实例。我想用jQuery操纵该用户控件的一部分。但是,jQuery似乎没有加载。

我在MasterPage中引用了jQuery库。我从我的default.aspx测试了以下代码并且它可以工作,但是当我在ascx页面中使用相同的代码时,我没有得到任何响应:

<script type="text/javascript" charset="utf-8">
    if (typeof ($) != 'function') alert('This component requires jQuery.');
    else $(function () { alert('The DOM is ready for jQuery manipulation.'); });
</script>

有什么想法吗?

THX。

2 个答案:

答案 0 :(得分:0)

如果您在母版页中引用了jQuery,那么您可以在.ascx中访问它。

你能把它放在$(document).ready(function(){/ * 你的代码.. * /})里面; -in ascx-并检查?

答案 1 :(得分:0)

要在用户控件.ascx中包含和运行JavaScript或JQuery代码行,不应在HTML代码中插入<script>标记。仅用于插入对JQuery文件的引用(如果需要的话)。像Load或UpdatePanel用户控件这样的ASP.NET页面事件不一定会触发客户端事件,例如在.aspx页面上加载完成时。为此,您应该使用ScriptManager.RegisterClientScriptBlock。要成功使用示例,请在.ASCX控件的Load事件中设置此代码:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "ActivateJsSample", 
@"<script type = 'text/javascript'>
if (typeof ($) != 'function') alert('This component requires jQuery.');
else $(function () { alert('The DOM is ready for jQuery manipulation.'); });
});
</script>", false);

这会与用户控件的Load事件同步并触发,并且每次都会启动。