asp.net引用母版页后,子页面引用外部JS文件问题 引用母版页后,母版页的外部css和js文件都还能使用,子页面的外部css也能使用,就是子页面的外部js文件不能使用,必须放到子页面上才行。请问各位大虾,这个问题怎么解决啊,不然页面上的js太多了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有可能是js里取不到控件ID,使用了母版页,子页控件ID都会加上前缀,一般我们是用<%.ClientID%>,但这个又是c#的语法,在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文件就应该是这样的<%@ 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> 在Content1 里面就是放js文件,或者css文件的了 不是获取不到ID,获取ID那个问题我能解决服务器端的空间ID都会在原本ID前加上一些值,客户端的不会改变我的意思是子页面引用外部JS文件出现错误,不过好像在子页面加上<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>引用之后就没问题了调试了一下,发现运行时先走的子页面,再走的母版页,所有必须要加上JQuery的类库引用 才行不过我昨天也加了,就不行,估计昨天没弄好谢谢大家 对,是这样写的,如果Content2里面有服务器端控件的话,所有服务器端控件的ID前会自动加上ContentPlaceHolderID的值,还有一个下划线_ 将母板中的js引用改成这样试试:<script type="text/javascript" src='<%= ResolveUrl("~/Js/jquery-1[1].3.1.js")%>'></script> public string ApplicationPath { get { _basePath = this.Request.ApplicationPath; if (_basePath.IndexOf("/") >= 0 && _basePath.Length == 1) _basePath = ""; return _basePath; } }<script src="<%=ApplicationPath %>/Script/JScript.js" type="text/javascript"></script> 对,很有可能就是服务器控件ID改变了,JS调用不到 js 不能使用!通常有3种问题: 楼主可以自己调试一下1、js 路径错误! 母板页和其它页面不在同一目录时,可能会出现此问题。通常css,js 都用相当于网址的根目录(如 “/js/1.js” "/css/1.css") 就可以了!2、js 文件编码和html 编码不一致! 导入js 时,设置编码。或者把js 的编码改成一致!3、服务器控件ID改变了,JS调用不到!右键查看源代码(firebug 更好) 就可以看到html 源代码了! explain cpp2017 code ViewState问题,急... 在同一浏览器多次请求同一个页面的问题 求“打造通用ASP.NET数据分页控件”的源码 如何将现有的类文件(.vb)封装dll 超连接与SQL 简单问题:如何实现鼠标单击datagrid中一行的任意地方。查看其详细内容!! ashx处理ajax请求的问题 各位大虾,帮帮忙!求助如何实现网页访问者的人数 如何把aspx项目打包?? .net 信息管理系统 快速开发架构 c# BitMap类型,关于return 之前 如何先dispose
一般我们是用<%.ClientID%>,但这个又是c#的语法,在js里是不能使用的
右键。。源码检查一下JS里用的各控件ID套用模版页ID发生变化。。
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
在body里面加这个控件
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder> 那么引用该模板的的aspx文件就应该是这样的
<%@ 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>
在Content1 里面就是放js文件,或者css文件的了
服务器端的空间ID都会在原本ID前加上一些值,客户端的不会改变我的意思是子页面引用外部JS文件出现错误,
不过好像在子页面加上<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
引用之后就没问题了调试了一下,发现运行时先走的子页面,再走的母版页,所有必须要加上JQuery的类库引用 才行不过我昨天也加了,就不行,估计昨天没弄好谢谢大家
<script type="text/javascript" src='<%= ResolveUrl("~/Js/jquery-1[1].3.1.js")%>'></script>
{
get
{
_basePath = this.Request.ApplicationPath;
if (_basePath.IndexOf("/") >= 0 && _basePath.Length == 1)
_basePath = "";
return _basePath;
}
}<script src="<%=ApplicationPath %>/Script/JScript.js" type="text/javascript"></script>
通常有3种问题: 楼主可以自己调试一下
1、js 路径错误! 母板页和其它页面不在同一目录时,可能会出现此问题。通常css,js 都用相当于网址的根目录(如 “/js/1.js” "/css/1.css") 就可以了!
2、js 文件编码和html 编码不一致! 导入js 时,设置编码。或者把js 的编码改成一致!3、服务器控件ID改变了,JS调用不到!右键查看源代码(firebug 更好) 就可以看到html 源代码了!