asp.net动态添加css样式表文件(如何动态加载css文件)

yumo6666小时前技术文章3

项目中要求在不同时间段根据不同条件更改一些控件的样式,甚至增加一些不同的样式表文件,这样我就不能把引用样式表的代码写在html中,只能在程序中动态添加了。


先添加一个 abc.css 和 webform1.aspx 用来测试

webform1.aspx代码如下:

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

namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            AddCss(this, "abc.css");
        }
        /// <summary>
        /// 添加css文件的引用
        /// </summary>
        /// <param name="c">控件名,一般写this就可以</param>
        /// <param name="FilePath">css文件的路径,如"/site.css"</param>
        public string AddCss(Control c, string FilePath)
        {
            try
            {
                
                Control x = c;
                if (x.Parent != null)
                {
                    x = x.Parent;
                    //如果当前控件不是顶层页面
                    while (!(x is Page))
                    {
                        //得到父控件
                        x = x.Parent;
                    }
                }

                //找到顶层控件后转成Page对象
                Page y = (Page)x;

                HtmlLink cssLink = new HtmlLink();
                cssLink.Href = FilePath;
                cssLink.Attributes.Add("rel", "stylesheet");
                cssLink.Attributes.Add("type", "text/css");
                y.Header.Controls.Add(cssLink);

                return "OK";
            }
            catch (Exception ErrMsg)
            {
                //出错处理
                return ErrMsg.ToString();
            }
        }
    }
}

使用方法就是这句

AddCss(this, "abc.css");

结果如下:

相关文章

CSS的4种引入方式及优先级(css引入方式有哪些)

CSS的4种引入方式是:行内样式、内嵌样式、链接样式、导入样式1.行内样式最直接最简单的一种,直接对HTML标签使用style="",例如:<p style="color:#F00; ">...

css样式引入优先级?(css引入样式的几种方法)

css中的优先级讲的有1.选择器的优先级。2.样式引入的优先级。今天要研究的是样式引入的优先级。网上又很多答案都是如下的,但是真的是这样的吗,让我们来探一探究竟是如何。四种样式的优先级别是:行内样式最...

css如何引入特殊字体(css如何引入特殊字体样式)

在前端开发过程中难免会用到特殊字体,如何引入特殊字体?首先你得有字体文件,文件格式为,TTF、OTF、EOT、SVG将字体文件放入本地文件夹中或者服务器上css中引入,以下为引入方法@font-fac...

如何在vue中按需引入element-ui?(vue按需引入elementui组件)

# 环境依赖 @vue/cli 4.0.5 vue 2.6.10" element-ui 2.13.0 babel-plugin-component 1.1.1全局安装可以直接引入整个...

web前端基础之css入门(前端css要掌握到什么程度)

#怎么才能让自己变优秀#css入门:css定义:cascading style sheetscss作用:修饰美化页面css引入方式分为3种:内部样式:在head里用style标签来写内联样式:直接在标...

那些容易被你忽略的HTML重要属性,你知道几个?

前言在前端开发编写html文件的时候,我们可能会很熟练的写出常见的html元素,但是如果问到某些元素的差别时,大家不一定能说的出来,今天就给大家总结一下那些很常见但容易混淆的属性。html与csscs...