您的位置:首页 > Web前端 > CSS

开发自定义web控件时把css,js嵌入成资源

2012-02-08 13:55 387 查看
本次示例 嵌入图片资源

步骤如下:

1.打开VS2005 新建一个解决方案 包含一个网站项目 一个类库项目

网站项目中加入aspx页面文件 以便测试自定义控件

类库项目加入“web自定义控件” 以便开发

2.类库项目 加入一个Resources文件夹

用来存放资源文件 如样式文件.css,脚本文件.js,图片文件.gif等

并加入一个图片文件如image1.gif

3.在该图片文件上点击右键 选择属性

“生成操作”选择“嵌入的资源”

4.在自定义控件的cs文件中

编写如下代码

示例代码如下:

using System;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.ComponentModel;

[assembly: WebResource(namespaceName.WebCustomControlClassName.image1url, "image/gif")]

namespace namespaceName

{

public class WebCustomControlClassName : System.Web.UI.WebControls.WebControl

{

public const string image1url = "namespaceName.Resources.image1.gif";

protected override void Render(HtmlTextWriter output)

{

Image myImage = new Image();

myImage.ImageUrl = this.Page.ClientScript.GetWebResourceUrl(this.GetType(), image1url);

myImage.RenderControl(output);

}

}

}

5.生成类库项目

6.利用生成的dll档 将控件加入到工具箱 以便使用

.......

如果要加入css或js等文件

要在同样的位置加入

[assembly: WebResource(PPMIS.Controls.ExpentDate.CSSResName, "text/css")]

[assembly: WebResource(PPMIS.Controls.ExpentDate.JSResName, "text/javascript")]

(可以任何cs文件的开头)



public const string CSSResName = "PPMIS.Controls.Resources.Calendar.css";

public const string JSResName = "PPMIS.Controls.Resources.Calendar.js";

并在

protected override void OnPreRender(EventArgs e)

{

#region 加入css

if (strCssLink == null || strCssLink == String.Empty)

{

string strcss = this.Page.ClientScript.GetWebResourceUrl(this.GetType(), CSSResName);

strCssLink = string.Format("<link href='{0}' rel='stylesheet' type='text/css' title='green' />", strcss);

}

string cssKey = "ExtendDateNamecss";

if (this.Page.Header.FindControl(cssKey) != null)

return;

Literal ltlCss = new Literal();

ltlCss = new Literal();

ltlCss.ID = cssKey;

ltlCss.Text = strCssLink;

this.Parent.Page.Header.Controls.Add(ltlCss);

///

if (strJsLink == null || strJsLink == String.Empty)

{

string strjs = this.Page.ClientScript.GetWebResourceUrl(this.GetType(), JSResName);

strJsLink = string.Format("<script src='{0}' type='text/javascript'></script>", strjs);

}

string jsKey = "ExtendDateNamejs";

if (this.Page.Header.FindControl(jsKey) != null)

return;

Literal ltljs = new Literal();

ltljs = new Literal();

ltljs.ID = jsKey;

ltljs.Text = strJsLink;

this.Parent.Page.Header.Controls.Add(ltljs);

#endregion

base.OnPreRender(e);

}

就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: