zoukankan      html  css  js  c++  java
  • 自定义控件:嵌入资源

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

  • 相关阅读:
    p1012拼数题解
    LeetCode OJ :Unique Binary Search Trees II(唯一二叉搜索树)
    UVA 11827 Maximum GCD
    LightOJ1336 Sigma Function(约数和为偶数的个数)
    LightOJ 1197 Help Hanzo(区间素数筛选)
    LightOJ 1236
    BZOJ3339 Rmq Problem
    COJ983 WZJ的数据结构(负十七)
    LCA的五种解法
    hdu4223(dp)
  • 原文地址:https://www.cnblogs.com/freeliver54/p/615153.html
Copyright © 2011-2022 走看看