我正在开发一个ASP.net应用程序。
我设计的一个名为LocationSelector
的用户控件出现了问题。它工作得很好,但是我不能在ASP:UpdatePanel中使用它。我通过浏览了解到,我需要将内联Javascript放在外部文件中,并将其注册到ScriptManager
中,这样javascript中就没有Response.Write
调用了。
接下来,我发现该控件一开始可以工作,但是当我将它封装在ASP:UpdatePanel中时,它将在第一次AJAX回发之后停止工作。为了解决这个问题,我需要将$(document).ready
调用替换为function pageLoad()
,该调用在每次加载ASP.net页面时都会自动执行。
在我的ASP.net应用程序中,我的几个页面工作得很好(框架对应用程序的驱动效果让我印象深刻)。然而,令我沮丧的是,我发现我的LocationSelector
控件在我的三个页面上不再工作了。HTML呈现,但是pageLoad (它使用jQuery绑定控件元素上的事件)不会触发。
我验证了这一点,但将alert('pageLoad');
作为pageLoad
函数的第一行。在有效的页面上,我看到了警报。在不工作的页面上,我从未看到警报,甚至在初始页面加载时也是如此。
是什么问题导致我的用户控件LocationSelector
上的LocationSelector
函数在某些页面上执行,而不是在其他页面上执行?
发布于 2011-03-10 18:11:22
我已经找到了问题,但我还是不知道解决办法是什么。
我的用户控件Location Selector
位于相对目录~/Controls
中。我使用以下代码注册脚本:
ScriptManager.RegisterClientScriptInclude(this, typeof(LocationSelector), Guid.NewGuid().ToString(), "Controls/LocationSelector.js");
问题在于JavaScript文件控件/LocationSelector.js的相对路径。
使用此代码的页面都位于ASP.net应用程序的根目录中。不工作的页面位于子目录中。
https://stackoverflow.com/questions/5263299
复制相似问题