2010-03-24 55 views
0

我已经花了至少2天的时间尝试任何操作,并使用google搜索这个...但由于某种原因,我无法让RegisterClientScriptInclude以其他人使用它的方式工作?RegisterClientScriptInclude由于某种原因不起作用

首先,我usting .NET 3.5的Ajax,......而我,包括我的部分页面的JavaScript刷新,...使用此代码:

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "MyClientCode", script, true); 

它完美,我包含的JavaScript代码在脚本中变量包含在每个局部刷新中。

脚本 JavaScript的其实是相当广泛的,虽然,我想将其存储在一个.js文件,..所以逻辑上我做的.js文件,并尝试使用RegisterClientScriptInclude它包括...但是我不能为我的生活得到这个工作。这里的确切代码:

ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "mytestscript", "/js/testscript.js"); 

testscript.js文件只包含在FULL页面刷新...即。当我加载页面,或做一个完整的回发....我不能让文件包含在部分刷新......不知道为什么......当在firebug中查看ajax POST时,我没有看到不同的是,我是否包括该文件....

两个ScriptManager包括正在从“Page_Load”中完全相同的地方运行...所以他们应该执行每个部分刷新(但只有ScriptBlock) 。

反正..任何帮助或想法,..或更多的方式,我可以麻烦拍这个问题,将不胜感激。

感谢, 安德鲁

回答

1

这是关键:

部分页面刷新

你必须通过特殊的跳火圈初始加载后的JavaScript添加到页面,因为稍后加载JavaScript被认为是一些安全风险(这对Google索引也是不利的)。

取而代之的是,在初始页面加载时注册脚本,直到稍后才执行脚本。如果这些脚本是动态创建的,我建议您将静态部分和重构分解为您可以使用从页面刷新动态返回的信息调用的方法。

+0

谢谢, 最初注册脚本然后执行它的问题是,我的脚本中有事件监听器。 因此,如果我注册一个脚本侦听点击事件里面的一些div内我的updatepanel ....然后我的更新面板刷新...我必须重新加载使用RegisterClientScriptBlock的监听器它的工作.....我只是不要在我的代码隐藏中使用javascript代码.... – Andrew 2010-03-24 17:22:47

+0

.js文件实际上应该只是声明方法,您稍后可以从您自己的代码中调用(在这种情况下很可能使用RegisterClientScriptBlock)。你正试图使用​​包含函数调用的包含文件,这就是为什么你有问题,这不是它们应该如何使用。 – fyjham 2010-06-17 04:10:06

相关问题