首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net引用母版页后,子页面引用外部JS文件有关问题

2012-05-21 
asp.net引用母版页后,子页面引用外部JS文件问题引用母版页后,母版页的外部css和js文件都还能使用,子页面的

asp.net引用母版页后,子页面引用外部JS文件问题
引用母版页后,母版页的外部css和js文件都还能使用,子页面的外部css也能使用,就是子页面的外部js文件不能使用,
必须放到子页面上才行。

请问各位大虾,这个问题怎么解决啊,不然页面上的js太多了

[解决办法]
有可能是js里取不到控件ID,使用了母版页,子页控件ID都会加上前缀,
一般我们是用<%.ClientID%>,但这个又是c#的语法,在js里是不能使用的
[解决办法]
首先母版页也就是个模型啊!你可以把所有的JS放到一个文件里面!然后引用文件!
[解决办法]
把母版页和其它子页面放在同一层目录下,不然只有在子页面里面重新引用了
[解决办法]
你放到子页面是用js文件还是直接写在页面上的,如果直接写在页面上就不会出差
[解决办法]
ctl00_txtKeyword以前我是人为加上ctl00_,你可以看看你的前缀是多少
[解决办法]
把所有要用到的服务器控件的客户端ID(ClientID)传到客户端的一个变量里,然后用服务器控件的ID查找,这样应该可以。只是想法,没实践过。。。
[解决办法]

右键。。源码。。。

检查一下JS里用的各控件ID。。。

套用模版页ID发生变化。。
[解决办法]
很简单的在模板页的<head></head>里面加这个控件
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
在body里面加这个控件
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder> 

那么引用该模板的的aspx文件就应该是这样的

C# code
<%@ Page Title="" Language="C#" MasterPageFile="~/Layout/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Sicent.WxSkper.Main.WebForm1" %><asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"></asp:Content>
[解决办法]
将母板中的js引用改成这样试试:

JScript code
<script type="text/javascript" src='<%= ResolveUrl("~/Js/jquery-1[1].3.1.js")%>'></script>
[解决办法]
C# code
 public string ApplicationPath    {        get        {            _basePath = this.Request.ApplicationPath;            if (_basePath.IndexOf("/") >= 0 && _basePath.Length == 1)                _basePath = "";            return _basePath;        }    }
[解决办法]
对,很有可能就是服务器控件ID改变了,JS调用不到
[解决办法]
js 不能使用!
通常有3种问题: 楼主可以自己调试一下
1、js 路径错误! 母板页和其它页面不在同一目录时,可能会出现此问题。通常css,js 都用相当于网址的根目录(如 “/js/1.js” "/css/1.css") 就可以了!
2、js 文件编码和html 编码不一致! 导入js 时,设置编码。或者把js 的编码改成一致!

3、服务器控件ID改变了,JS调用不到!

右键查看源代码(firebug 更好) 就可以看到html 源代码了!

热点排行