什么时候应该调用Page.Header.DataBind?

时间:2010-10-07 20:56:21

标签: c# asp.net jquery asp.net-3.5

我正在尝试使用以下方法解决我头部中javascript脚本的正确路径:

<script src="<%# ResolveUrl("~/Scripts/jquery-1.4.2.min.js") %>" type="text/javascript" />

为了解决我需要使用Page.Header.DataBind();调用数据绑定的路径,我应该将数据绑定调用放入什么事件?

感谢。

参考:http://leedumond.com/blog/the-controls-collection-cannot-be-modified-because-the-control-contains-code-blocks/

当我把它放在Page_Load中,因为文章建议它有效(仅适用于firefox),但我想知道这是不是正确的地方。

当我按照本文IE 8渲染时:

<script src="/Scripts/jquery-1.4.2.min.js" type="text/javascript" />

和firefox 3.6正确呈现:

<script src="../../Scripts/jquery-1.4.2.min.js" type="text/javascript" />

更新

通过更新引用的用户控件中的脚本引用来修复浏览器问题,以使用ResolveUrl。现在浏览器问题已修复。还在想在哪里放Databind。

3 个答案:

答案 0 :(得分:2)

<%#更改为<%=,此时您不再需要调用Page.Header.DataBind();,因为您没有在表达式中进行任何实际的数据绑定。

有关ASP.NET标记的差异,请参阅this question

从我在所有项目中使用的母版页:

<script type="text/javascript" src='<%= ResolveUrl("~/js/jquery-1.4.2.min.js") %>' ></script>

答案 1 :(得分:0)

修正了将ID and runat="server"添加到链接(样式表),在标题中查找控件,在链接上调用数据绑定而不是整个标题。

答案 2 :(得分:0)

我设法通过在Page.DataBind()上致电Page_Load来解决此问题。

更新:仅在母版页的Page_Load上调用它会导致gridview命令无法正常工作的一些错误。将其放入!Page.IsPostBack检查中即可解决。

相关问题