首页 > .NET, 技术 > ASP.NET使用母版页后动态加载JS/CSS

ASP.NET使用母版页后动态加载JS/CSS

2010年8月19日 作者: 发表评论 阅读评论

ASP.NET中使用母版页最大的好处就是当有许多相似的页面时只用加一个母版页,每个页面用这个母版页生成内容页,然后根据情况修改每个内容页中的内容,保持页面布局的统一,同时也减少了代码量。

但另一个突出的问题是使用母版页后,每个内容页中没有了<head></head>标记,因为这都在母版页中有了,而这对修改标题、加载JS/CSS等文件都有影响,前面我已经说过在ASP.NET中使用母版页后统一网页标题,那这篇就来说说如何加载JS/CSS等文件。

ASP.NET中使用母版页后统一网页标题中修改标题的原理一样,加载JS/CSS等文件可以在内容页中加,也可以在母版页中统一加载。

1、在单个内容页中加载

将下面两段段代码放入内容页的Page_Load中即可,很简单了,也不再多解释。

  • 加载JS文件
#region 加载JS文件
HtmlGenericControl JSControl = new HtmlGenericControl("script");
JSControl.Attributes.Add("type", "text/javascript");
JSControl.Attributes.Add("src", "JS/js.js");
Page.Header.Controls.Add(JSControl);
#endregion
  • 加载CSS文件
HtmlLink CssControl = new HtmlLink();
CssControl.Href = "/CSS/Style.css";
CssControl.Attributes.Add("rel", "stylesheet");
CssControl.Attributes.Add("type", "text/css");
Page.Header.Controls.Add(CssControl);

2、在母版页中统一加载

string requestContentType = this.ContentPlaceHolder1.Page.GetType().ToString();
if (requestContentType == "ASP.admin_c2c_user_management_aspx")//获取请求的内容页类型,格式如ASP.目录名_文件名_aspx(好像文件名中的“-”都会被转换成了“_”)
{
    //加载JS文件
    HtmlGenericControl JSControl = new HtmlGenericControl("script");
    JSControl.Attributes.Add("type","text/javascript");
    JSControl.Attributes.Add("src", "JS/js.js");
    Page.Header.Controls.Add(JSControl);
    // 加载CSS文件
    HtmlLink CssControl = new HtmlLink();
    CssControl.Href = "/CSS/Style.css";
    CssControl.Attributes.Add("rel", "stylesheet");
    CssControl.Attributes.Add("type", "text/css");
    Page.Header.Controls.Add(CssControl);
}

无觅相关文章插件,快速提升流量

分类: .NET, 技术 标签: , , , 阅读:2,666  纯文字版
  1. 2010年8月19日07:35

    没用过dotnet

    [回复]

    自由人 回复:

    这个可以用的~~

    [回复]

  2. 2010年8月19日07:44

    有点复杂

    [回复]

    自由人 回复:

    其实很easy的

    [回复]

  3. 2010年8月19日09:52

    ASP.NET 用着不是很熟练。

    [回复]

    自由人 回复:

    用着用着就熟了~~

    [回复]

  4. 2010年8月19日11:43

    现在.NET里面使用母版页的页面有两个控件,第一个就是在页面中添加和中间的信息,可以实现不同的页面使用不同的JS

    [回复]

    自由人 回复:

    好像没看明白

    [回复]

    飞晏 回复:

    就是模板面中的区域有一个,区域有
    。这样使用模板页面的时候就可以分别在head和body添加内容了

    [回复]

    飞晏 回复:

    就是母版页中的head区域有一个asp:ContentPlaceHolder id=”head” runat=”server”,body区域有asp:ContentPlaceHolder id=”ContentPlaceHolder1″ runat=”server”
    。这样使用母版页的时候就可以分别在head和body添加内容了

    [回复]

    自由人 回复:

    嗯,我最开始就这样搞的,在VS2005里会提示无法识别的标记前缀,但实际能用,08里好像他就给你在head中自动加了个contentplaceholder

    [回复]

  5. 2010年8月19日12:26

    还好,看得懂!!

    [回复]

    自由人 回复:

    呵呵,这几行很简单的,一看就懂

    [回复]

  6. 2010年8月19日14:41

    额,一般这个语言配什么数据库的?
    access还是mssql?

    [回复]

    自由人 回复:

    都可以的,MSSQL多些吧

    [回复]

  7. 2010年8月19日15:07

    对asp一窍不通

    [回复]

    自由人 回复:

    我最初搞这个其实是被动的。。。

    [回复]

  8. 2010年8月19日17:28

    代码万岁~

    [回复]

    自由人 回复:

    哈哈~~万岁~~

    [回复]

  9. 2010年8月19日19:49

    这个专业了,我是非技术流,不大懂。

    [回复]

    自由人 回复:

    嗯嗯,这个记录下,方便以后参考

    [回复]

  10. 2010年8月20日12:29

    .net用了好几年,身边没人说过”母版页”的名词,汗. 母版页就是”asp叉”页吧?我们都说在”asp叉”页添加某某控件.在”cs”页编写某某事件代码.

    [回复]

    自由人 回复:

    不是啊。。。母版页的后缀是.Master ,用一个母版页可以生成很多内容页,内容页的后缀是.aspx

    [回复]

    记忆盒子 回复:

    刚看了下,原来.net2005后引进了”母版”,汗!一直没有用过这个,.net2003用的多,项目也没有升级到.net2005或者.net2008. 然后又搞java什么的,看来真的跟不上知识更新的步伐呀!!!不过,更大原因是自己不去学习吧,哎………………net2005和.net2008学习中!

    [回复]

    自由人 回复:

    呵呵,我最开始用05的时候也没注意,然后做页面的时候发现很多页面就中间的一块内容不同,其他都一样,这才想起看书的时候有母版页

    [回复]

  11. 2010年8月20日16:57

    完全不懂的人路过打酱油

    [回复]

    自由人 回复:

    加油!只要想懂,没什么搞不懂的

    [回复]

  12. 2010年8月20日18:30

    我也想这样做

    [回复]

    自由人 回复:

    那就这样做呗~~

    [回复]

  13. 2010年8月20日20:53

    这个看以看不懂

    [回复]

    自由人 回复:

    学了.NET就懂啦~~

    [回复]

  14. 2010年8月21日06:31

    .net就是强大,什么都是现成的。

    [回复]

    自由人 回复:

    嗯,.NET确实比较易于上手

    [回复]

  15. 2010年8月21日12:16

    外行看热闹了,哈哈,看不懂的

    [回复]

    自由人 回复:

    哈哈,学了就懂啦~

    [回复]

  16. 2010年8月21日14:48

    说虽然是这样,但是实现起来就很困难了

    [回复]

    自由人 回复:

    用的时候直接把代码粘过去就OK了~~

    [回复]

  17. 2010年8月23日20:30

    这个我纯支持!

    [回复]

    自由人 回复:

    拉住她~~ 赶紧,别让她跑啦~~

    [回复]

    joyla 回复:

    没走 没走 这不还在吗?

    [回复]

  18. 2010年10月5日02:13

    半年没用母版页了,很怀念……

    [回复]

  19. maik
    2011年4月9日17:48

    想问你一下,关于母版的问题,当我把母版设计好了后,左边有个a标签的导航,当点击a标签,就改变右边子页面的内容,同时a标签的样式我改变了一下,让它改为被选中状态,主要是用来达到醒目的效果。
    但是当我真正把子页面写好后,点击a标签时,右边是切换到了a标签url指定的地址,但是由于回发到了服务器,a标签的样式被丢失了,请问大虾,有什么好注意么,不让子页面的刷新影响到a标签的样式??

    [回复]

    自由人 回复:

    应该可以在母版页里判断下打开的是哪个内容页,然后给a标签设置样式,这个我也没有具体做过,只是有这么个思路,不知道好使不

    [回复]

    maik 回复:

    呵呵,当子页面为空,然后应用该母版后,点击a链接,样式是可以改变的,当子页面里面有内容,就是子页面里有服务器组件时,它由于回发到服务器,把样式就恢复到了初始状态。。。

    [回复]