向ASP.NET自定义控件中嵌入CSS资源

ASP.NET自定义控件中嵌入CSS资源

Step1:于【项目解决方案】中右键新建【ASP.NET服务器控件】项目

Step2:于项目中添加【Resources】文件夹,于该文件夹下添加【CSS文件】

Step3:单击该CSS文件,并将【属性】栏中的【生成操作】改为【嵌入的资源】

Step4:新建【ASP.NET自定义控件】,于namespace声明前添加如下特性:

[assembly:WebResource("MyControl.Resouces.MyCSSFile.css","text/css")]

namespace MyControl

{

P.S.[assembly:WebResource("namespaceName.Directories.FileName.Extention","文件的MIME类型")]

Page.ClientScript.GetWebResourceUrl()方法返回该CSS文件路径

Step5:向宿主页面注册此CSS文件:

protected override void OnPreRender(EventArgs e)

{

if (Page.Header.FindControl("ServerTabsCSS") == null)//防止同一页面多个该自定义控件向宿主页面添加相同的<link>标记

{

HtmlLink css = new HtmlLink();

css.ID = "ServerTabsCSS";

css.Href = Page.ClientScript.GetWebResourceUrl(this.GetType(), "MyControl.Resources.ServerTabs_CSS.css");

css.Attributes.Add("rel", "stylesheet");

css.Attributes.Add("type", "text/css");

Page.Header.Controls.Add(css);

}//<link type="text/css" rel="stylesheet" href="......css"/>

base.OnPreRender(e);

}