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

本次示例 嵌入图片资源
步骤如下:
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);
  }
就可以了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值