Jquery 为什么我的一些ASP.net页面上没有启动“用户控件页面加载”功能?

Jquery 为什么我的一些ASP.net页面上没有启动“用户控件页面加载”功能?,jquery,asp.net,ajax,updatepanel,scriptmanager,Jquery,Asp.net,Ajax,Updatepanel,Scriptmanager,我正在开发一个ASP.net应用程序 我设计的名为LocationSelector的用户控件有问题。它工作得很好,但我无法在ASP:UpdatePanel中使用它。通过浏览SO,我了解到我需要将我的内联javascript放在一个外部文件中,并将其注册到ScriptManager,这样就不会有响应。在javascript中编写调用 接下来,我发现该控件一开始可以工作,但当我将其包含在ASP:UpdatePanel中时,它会在第一次AJAX回发后停止工作。我读到要解决这个问题,我需要将我的$(do

我正在开发一个ASP.net应用程序

我设计的名为
LocationSelector
的用户控件有问题。它工作得很好,但我无法在ASP:UpdatePanel中使用它。通过浏览SO,我了解到我需要将我的内联javascript放在一个外部文件中,并将其注册到
ScriptManager
,这样就不会有
响应。在javascript中编写
调用

接下来,我发现该控件一开始可以工作,但当我将其包含在ASP:UpdatePanel中时,它会在第一次AJAX回发后停止工作。我读到要解决这个问题,我需要将我的
$(document).ready
调用替换为
函数pageLoad()
,该函数在每次ASP.net页面加载时自动执行

我在ASP.net应用程序中的几个页面工作得很好(我对框架似乎能很好地驱动应用程序印象深刻)。然而,令我沮丧的是,我发现我的
LocationSelector
控件在我的三个页面上根本无法工作。HTML呈现,但pageLoad(使用jQuery绑定控件元素上的事件)不会触发

我验证了这一点,但将
警报('pageLoad')作为我的
pageLoad
功能的第一行。在有效的页面上,我看到了警报。在不工作的页面上,我从未看到警报,即使在初始页面加载时也是如此


什么样的问题可能会导致我的用户控件
LocationSelector
上的
pageLoad
功能在某些页面上执行,而在其他页面上执行?

我发现了问题,但我仍然不知道解决方案是什么

我的用户控件
位置选择器
位于相对目录
~/Controls
中。我使用以下代码注册脚本:

ScriptManager.RegisterClientScriptInclude(this, typeof(LocationSelector), Guid.NewGuid().ToString(), "Controls/LocationSelector.js");                
问题在于JavaScript文件Controls/LocationSelector.js的相对路径


使用此代码的页面都位于ASP.net应用程序的根目录中。不起作用的页面位于子目录中。

我发现了问题,但我仍然不知道解决方案是什么

我的用户控件
位置选择器
位于相对目录
~/Controls
中。我使用以下代码注册脚本:

ScriptManager.RegisterClientScriptInclude(this, typeof(LocationSelector), Guid.NewGuid().ToString(), "Controls/LocationSelector.js");                
问题在于JavaScript文件Controls/LocationSelector.js的相对路径


使用此代码的页面都位于ASP.net应用程序的根目录中。无法工作的页面位于子目录中。

这些页面上是否存在脚本错误?声明的事情是一样的吗?不工作的页面是否都有相同或类似的格式/模板,使其与工作页面不同?这些页面上是否存在脚本错误?声明的事情是一样的吗?不工作的页面是否都有共同点或类似的格式/模板,使其与工作页面不同?我想你回答了自己的问题。。。将代码更改为register
“~/Controls/LocationSelector.js”
。如果出于某种原因ScriptManager无法处理相对路径,请使用
ResolveUrl
函数(控件
的成员)。我想您已经回答了自己的问题。。。将代码更改为register
“~/Controls/LocationSelector.js”
。如果出于某种原因ScriptManager不能使用相对路径,请使用
ResolveUrl
函数(控件的成员)。