动态添加js、css、meta元素

2012年3月31日    出去工作的同学说大学的生活 是最好玩的,国家假期、周末、还来个寒暑假,玩到你蛋疼。大三最后一个学期了,下半年就要去实习了,闲的下来吗?

      由于网站的主要频道页和列表页的头部和底部都是一样的,如果将每个页面放在单独的页面中,当头部和底部需要更改时维护量太大。于是想把头部和底部做成母版页,频道页和列表页的具体内容放到内容页中。这样当头和底需要改动时,只要修改一下母版页就可以了。

      当对于css与js来说,全放在母版页中,有点太过了。有点多。

      我测试有两种方法:

      1、在母版页中添加一个入口(会提示错误,但能运行)

      <head runat="server">
            <link href="css/admin_basic.css" rel="stylesheet" />
            <asp:ContentPlaceHolder ID="header" runat="server">
            </asp:ContentPlaceHolder>
      </head>

         然后再在内容页中添加就行。

      2、下面是我写的一个类,用于动态添加

         using System;
         using System.Collections.Generic;
         using System.Web;
         using System.Web.UI;
         using System.Web.UI.HtmlControls;

/// <summary>
///AddHeaderControl 是用于动态添加head中的controls,像css,js,优化的时候用到的Meta元,常见在引用母版的内容页上使用
/// </summary>
 public class AddHeaderControl
 {
    /// <summary>
    /// 在head中动态链接js
    /// </summary>
    /// <param name="page">当前page页</param>
    /// <param name="path">js路径</param>
    public static  void AddScript(Page page, string path)
    {
        HtmlGenericControl jscontrol = new HtmlGenericControl("script");//创建一个不由特定.net framework使用的控件,因没有htmlsrcipt
        jscontrol.Attributes.Add("type", "text/javascript");//加属性
        jscontrol.Attributes.Add("src", path);
        page.Header.Controls.Add(jscontrol);//添加 到头
    }
    /// <summary>
    /// 在head中动态链接css
    /// </summary>
    /// <param name="page">当前page页</param>
    /// <param name="path">css路径</param>
    public static void AddLink(Page page, string path)
    {
        HtmlLink link = new HtmlLink();
        link.Href = path;
        link.Attributes["rel"] = "stylesheet";
        link.Attributes["type"] = "text/css";
        page.Header.Controls.Add(link);
    }
    /// <summary>
    /// 在head中添加描述,优化中常需要用到
    /// </summary>
    /// <param name="page">当前page页</param>
    /// <param name="content">要添加的内容</param>
    public static void AddMetaDescription(Page page, string content)
    {
        HtmlMeta hm = new HtmlMeta();
        hm.Attributes["name"] = "description";
        hm.Attributes["content"] = content;
        page.Header.Controls.Add(hm);   
    }
    /// <summary>
    /// 在head中添加keyswords,优化中常用到
    /// </summary>
    /// <param name="page">当前page页</param>
    /// <param name="content">要添加的内容</param>
    public static void AddMetaKeywords(Page page, string content)
    {
        HtmlMeta hm = new HtmlMeta();
        hm.Attributes["name"] = "keywords";
        hm.Attributes["content"] = content;
        page.Header.Controls.Add(hm);   
    }
}


转载于:https://www.cnblogs.com/arno-zhang/archive/2012/04/03/5027560.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值