代码:

<span style="font-family:Microsoft YaHei; font-size:12px">using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls; namespace DemoWebControl
{
/// <summary>
/// 自己的Asp.Net服务器组件 一个DIV控件:拖拽控件之后,自动输出 需要的 CSS到界面
/// </summary>
public class DemoCssCtrl : WebControl
{
protected bool IsDesignMode
{
get { return DesignMode || HttpContext.Current == null || Page == null; }
}
public string Text { get; set; }
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e); //输出 CSS 到 HTML文件的头部标签中
if (!IsDesignMode)
{
HtmlLink linkCss = new HtmlLink();
linkCss.Attributes.Add("type", "text/css");
linkCss.Attributes.Add("rel", "stylesheet");
linkCss.Attributes.Add("href", Page.ClientScript.GetWebResourceUrl(GetType(),
"DemoWebControl.Resources.DemoCss01.css"));
Page.Header.Controls.Add(linkCss);
}
}
//两个 嵌套的 DIV,内嵌CSS资源文件,拖拽控件即可实现 HTML 和 CSS文件 都输出到页面
protected override void Render(HtmlTextWriter output)
{
output.Write("<div id=\"" + ClientID + "\" name=\"" +
ClientID + "\" class=\"OuterDiv\">\r\n");
output.Write("<div class=\"InnerDiv\">");
output.Write(Text);
output.Write("</div>\r\n");
output.Write("</div>\r\n");
}
} }
</span>
<span style="font-family:Microsoft YaHei; font-size:12px"><%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DemoCssPage.aspx.cs"
Inherits="AspNetDemo.DemoCssPage" %>
<%@ Register assembly="DemoWebControl" namespace="DemoWebControl" tagprefix="Demo" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div> <Demo:DemoCssCtrl ID="DemoCss1" Text="两个DIV嵌套" runat="server" /> </div>
</form>
</body>
</html>
</span>

嵌入资源:



嵌入css代码:

<span style="font-family:Microsoft YaHei; font-size:12px">.OuterDiv{ border: 1px solid RED;background-color: Blue; float: inherit; width:200px; height:150px; }
.InnerDiv
{
border: 1px solid Yellow;
/*内嵌CSS无法指定具体路径的 图片,所以需要将 图片的字节流转成 Base64 编码 内嵌到 CSS文件中*/
background-image: url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEASABIAAD/4Qn/wD/2Q==');
float: inherit; width:140px; height:80px; margin: 35px 30px 35px 30px;color: White;
font-family: 微软雅黑; text-align: center;
} </span>

运行截图:



相关技术点:

将一个CSS文件 内嵌到 程序集中,需要设置 文件VS属性(生成操作:签入的资源);

程序集项目 AssemblyInfo.cs 中需要加入如下代码(其中 WebResource 包括 资源名称,资源类型):

<span style="font-family:Microsoft YaHei; font-size:12px">// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")] //此标识 可以让 拖拽的控件 自动以 Demo 作为 tagprefix 属性,比如:
//<%@ Register assembly="DemoWebControl" namespace="DemoWebControl" tagprefix="Demo" %>
[assembly: TagPrefix("DemoWebControl", "Demo")] [assembly: WebResource("DemoWebControl.Resources.DemoImage01.jpg", "image/jpeg")]
[assembly: WebResource("DemoWebControl.Resources.DemoImage02.jpg", "image/jpeg")]
[assembly: WebResource("DemoWebControl.Resources.DemoImage03.jpg", "image/jpeg")] [assembly: WebResource("DemoWebControl.Resources.DemoCss01.css", "text/css")]
[assembly: WebResource("DemoWebControl.Resources.DemoJs01.js", "text/javascript")]</span>

获取 程序集中的 内嵌文件的 Url代码是:Page.ClientScript.GetWebResourceUrl(GetType(), @”资源名称”);

将CSS文件设置到 HTML的 链接到头部:

<span style="font-family:Microsoft YaHei; font-size:12px">protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
//输出 CSS 到 HTML文件的头部标签中
if (!IsDesignMode)
{
HtmlLink linkCss = new HtmlLink();
linkCss.Attributes.Add("type", "text/css");
linkCss.Attributes.Add("rel", "stylesheet");
linkCss.Attributes.Add("href", Page.ClientScript.GetWebResourceUrl(GetType(),
"DemoWebControl.Resources.DemoCss01.css"));
Page.Header.Controls.Add(linkCss);
}
}</span>

『Asp.Net 组件』Asp.Net 服务器组件 内嵌CSS:将CSS封装到程序集中的更多相关文章

  1. 『Asp.Net 组件』Asp.Net 服务器组件 内嵌JS:让自己的控件动起来

    代码: using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ...

  2. 『Asp.Net 组件』Asp.Net 服务器组件 内嵌图片:自己的图片控件

    代码: using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ...

  3. 『Asp.Net 组件』Asp.Net 服务器组件 的开发优势和劣势

    在写<Asp.Net 服务器组件系列文档>之前,笔者不才,揣测微软战略用意: 微软利益诉求莫过于 微软产品和技术的市场份额: 因此,微软战略之一莫过于将 所有开发人员 团聚在 微软周围,以 ...

  4. Spring Boot 揭秘与实战(五) 服务器篇 - 内嵌的服务器 Tomcat剖析

    文章目录 1. 内嵌的 Tomcat,一个Jar包运行 2. 如何定制内嵌 Tomcat3. War 包部署的使用细节 2.1. 设置内嵌Tomcat的端口 2.2. 设置内嵌Tomcat的最大线程数 ...

  5. 『Asp.Net 组件』第一个 Asp.Net 服务器组件:自己的文本框控件

    代码: using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DemoWebControl ...

  6. 转:无法向会话状态服务器发出会话状态请求请。确保 ASP.NET State Service (ASP.NET 状态服务)已启动

    今天看到一篇文章感觉不错,收藏转载下. 原文地址:http://blog.csdn.net/sntyy/article/details/2090347 版权为原作者所有 无法向会话状态服务器发出会话状 ...

  7. Tomcat中的服务器组件和 服务组件

    开始学习Tocmat时,都是学习如何通过实例化一个连接器 和 容器 来获得一个Servlet容器,并将连接器  和 servlet容器相互关联,但是之前学习的都只有一个连接器可以使用,该连接器服务80 ...

  8. MySQL 8 服务器组件

    MySQL 服务器包含了一个基于组件的架构,用于扩展服务器功能.服务器和其他组件可以使用组件提供的服务.(在使用服务方面,服务器也是一个组件,等同于其他组件).组件之间交互仅通过他们各自提供的服务. ...

  9. Spring Boot 揭秘与实战(五) 服务器篇 - 其他内嵌服务器 发表于 2017-01-03 | Spring框架 | Spri

    文章目录 1. Jetty 的切换 2. Undertow的使用 Spring Boot 可选择内嵌 Tomcat.Jetty 和 Undertow,因此我们不需要以 war 包形式部署项目.< ...

随机推荐

  1. php入门实现留言板

    首先由一个文本文档read.txt liulan.html <!doctype html> <html lang="en"> <head> &l ...

  2. 用jquery-easyui中的combotree实现树形结构的选择

    用jquery-easyui中的combotree实现树形结构的选择 需求:实现一个树形节点的选择,要求默认父节点都折叠,父节点前的checkbox不显示,子节点显示checkbox,且父节点不可选择 ...

  3. freemarker.core.InvalidReferenceException: Expression stackObject.value.get(propertyName).toString() is undefined

    很奇怪的报错, 在实体中添加 toString方法后, 想在前台列表中使用 <s:debug标签调试, 发现报错如下: freemarker.core.InvalidReferenceExcep ...

  4. 一步一步搭建 OAuth 认证服务器

    http://www.fising.cn/2011/03/%E4%B8%80%E6%AD%A5%E4%B8%80%E6%AD%A5%E6%90%AD%E5%BB%BA-oauth-%E8%AE%A4% ...

  5. 编程中的 if ()else() 语句

    例句    if()  else() double d = Convert.ToDouble(Console .ReadLine()); if (d >= 60 && d< ...

  6. sql server 查询字符串指定字符出现的次数

    这里提取指定符串"A"在字段中的出现次数SQL为: select len(keyword)-len(replace(keyword, 'A', ' ')) from 表 原理:用r ...

  7. html-----018----HTML Web Server/HTML URL 字符编码

    HTML Web Server 如果希望向世界发布您的网站,那么您必须把它存放在 web 服务器上. 托管自己的网站 在自己的服务器上托管网站始终是一个选项.有几点需要考虑: 硬件支出 如果要运行“真 ...

  8. 数据库之mysql 视图

    视图,把基本表的某些数据组合起来构成一个虚拟表的一种形式,之所以叫虚拟,是因为只有当视图用于一条语句中的时候,它才能存在.同时如果对视图中的数据进行修改,会同时修改到基本表中的数据. 创建视图: cr ...

  9. PHP学习心得(十)——控制结构

    if 结构是很多语言包括 PHP 在内最重要的特性之一,它允许按照条件执行代码片段. if 语句可以无限层地嵌套在其它 if 语句中,这给程序的不同部分的条件执行提供了充分的弹性. else 延伸了  ...

  10. opcache运行时配置参数详解

    PHP的opcode缓存又出 了新成员(说新不新,也有一段日子了),那就是opcache.新浪微博等都在使用,惠新宸老师强力推荐.本人最近根据官网地址 (http://www.php.net/manu ...