zoukankan      html  css  js  c++  java
  • 『Asp.Net 组件』Asp.Net 服务器组件 内嵌图片:自己的图片控件

     代码:

    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace DemoWebControl
    {
        /// <summary>
        /// 自己的Asp.Net服务器组件 Image:输出内嵌的在程序集中的 图片资源
        /// </summary>
        public class DemoImage : WebControl
        {
            protected bool IsDesignMode
            {
                get { return DesignMode || HttpContext.Current == null || Page == null; }
            }
            public DemoEnumImage DemoEnumImage { get; set; }
    
            //通过用户在 属性中的设置,将内嵌的图片 作为 IMG标签 输出到 页面
            protected override void Render(HtmlTextWriter output)
            {
                string imageUrl = string.Empty;
                if (Page!=null)
                {
                    if(DemoEnumImage==DemoEnumImage.Image01)
                        imageUrl = Page.ClientScript.GetWebResourceUrl(GetType(), 
                                    @"DemoWebControl.Resources.DemoImage01.jpg");
                    else if (DemoEnumImage == DemoEnumImage.Image02)
                        imageUrl = Page.ClientScript.GetWebResourceUrl(GetType(), 
                                    @"DemoWebControl.Resources.DemoImage02.jpg");
                    else if (DemoEnumImage == DemoEnumImage.Image03)
                        imageUrl = Page.ClientScript.GetWebResourceUrl(GetType(), 
                                    @"DemoWebControl.Resources.DemoImage03.jpg");
                }
    
                output.Write("<image id="" + ClientID + "" name="" + ClientID + 
                    "" class="" + CssClass + "" src="" + imageUrl + "" />");
            }
        }
    
        [Serializable]
        public enum DemoEnumImage { Image01, Image02, Image03, }
    }
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DemoImagePage.aspx.cs" 
    
    Inherits="AspNetDemo.DemoImagePage" %>
    <%@ 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">
        <style type="text/css">
            .Demo{ border: 1px solid RED; }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            
            <Demo:DemoImage ID="DemoImage1" DemoEnumImage="Image03" CssClass="Demo" runat="server" />
    
        </div>
        </form>
    </body>
    </html>

    嵌入资源:

     

    运行截图:

     

    相关技术点:

    • 将一个图片资源 内嵌到 程序集中,需要设置 文件VS属性(生成操作:签入的资源);
    • 程序集项目 AssemblyInfo.cs 中需要加入如下代码(其中 WebResource 包括 资源名称,资源类型):
    • // 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
      // 方法是按如下所示使用“*”:
      // [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")]
    • 获取 程序集中的 内嵌文件的 Url代码是:Page.ClientScript.GetWebResourceUrl(GetType(), @"资源名称");

     

     相关系列文章链接:

     

     

  • 相关阅读:
    买卖股票的最佳时机
    删除排序数组中的重复数字
    软件工程第五次作业:个人总结
    软件工程第二次作业——结对编程
    第一次软件工程作业补充plus
    第二次(四则运算,)
    我的第一次
    软件工程--个人总结
    软件工程第二次作业—结对编程
    软件工程第一次作业补充
  • 原文地址:https://www.cnblogs.com/shuxiaolong/p/20131006_003.html
Copyright © 2011-2022 走看看