zoukankan      html  css  js  c++  java
  • WebResource-asp.net自定义控件引用外部资源方法

    rom:http://www.lmwlove.com/ac/ID879

    在asp.net中开发自定义控件时,如果我们要用到图片,外部css,js等文件,那么最好的方式就是将这些文件作为自定义控件嵌入的资源,随着控件一起打包成dll文件发布。那么我们要如何将这些文件设置为嵌入的资源,又如何在自定义控件引用这些文件呢?下面我们以一个css与js文件为例来做一演示。

    一,首先当然是创建这两个文件了。我们在自定义控件的项目内创建两个文件,分别为JScript.js与Stylessheet.css文件。要使它们成为嵌入的资源,最重要的是在文件目录上点击右键,选择属性,在生成操作的选项选择"嵌入的资源",如下如图所示:

    分别设置好JScript.js与Stylessheet.css文件的该属性,这样,文件的处理就完成了。

    二,对嵌入资源的引用。
    在AssemblyInfo.cs文件中对资源的引用。
    除了设置文件的属性外,我们还需要设置对资源的引用,具体方法是:打开项目的AssemblyInfo.cs文件,在文件的最后面添加如下两行代码:

    [assembly: WebResource("ServerControl.SelectCtlReSource.Stylesheet.css", "text/css")]
    [assembly: WebResource("ServerControl.SelectCtlReSource.JScript.js", "text/javascript")]

    注意它的两个参数,第一个参数它是一个字符串,总体意思就是文件的路径,格式为"引用类的命名空间"+"资源所在文件夹"+"文件名",如"ServerControl.SelectCtlReSource.Stylesheet.css",ServerControl为命名空间,SelectCtlReSource为css所在的文件夹,Stylesheet.css为文件名。第二个参数是指明文件的类型,包括"img/gif","text/css","text/javascript"等常用文件格式。

    注意:添加引用时需要为AssemblyInfo.cs添加命名空间using System.Web.UI的引用。

    那么要如何在自定义类中使用这两个外部文件呢?
    三,使用外部css资源
    我们可以利用Page.ClientScript.GetWebResourceUrl方法来获取到外部资源的地址,代码如下:
    string cssUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(),  
    "ServerContrAssemblyInfo.cs.SelectCtlReSource.Stylesheet.css");
    HtmlLink link = new HtmlLink();
    link.Href = cssUrl;
    link.Attributes.Add("rel", "stylesheet");
    link.Attributes.Add("type", "text/css");
    Page.Header.Controls.Add(link);

    解释一下代码的意思:
    1,注意Page.ClientScript.GetWebResourceUrl的三个参数,第一个就不讲了,为资源的类型。第二个比较重要,它的格式与上面引用格式一样。
    2,获取到资源的url后,后面的代码就是将该css注册到页面的head中,这个就不讲解了。

    四,使用外部javascript资源
    引用javascript文件的方法与引用css的文件稍有些不一样。使用css文件为获取到外部css的路径后再通过HtmlLink类将css添加页面的head部分中,而javascript则可以直接通过RegisterClientScriptResource来注册,示例代码如下:
    Page.ClientScript.RegisterClientScriptResource(this.GetType(), "ServerControl.SelectCtlReSource.JScript.js");

    好了,这样就完成了在自定义控件中对外部资源的引用。平时我们看到页面中生成的WebResource.axd后面添加一堆的字符串,总觉的webresource会是一个很复杂的东西,其实,弄懂了它的规则后,这些东西就很容易理解并记住了,大家做做练习吧。

    我们在上例中注册的两个文件,最终会在html文件中生成类似如下代码:
    <link rel="stylesheet" type="text/css" href="/WebResource.axd?d=21KpM8lphlA-zR5ejP1pnghDV1cXwkQpw-QlXFdu3jwwMymuuN49ab8qvx6fH66D6oQMw7WWdKIXCE8T4DOfe0ype4VWtox9HdA0pLREJOcBpgcflwup5Cm6zjgCUJwiGQlkWGk6_Bv-90hWtF9dAIDIeL5aB-0a7Rac1Uw5OnIOe2C70&t=634746559960937500" />

    <script src="/WebResource.axd?d=8E4J6LzCJ4MPILLeEtw_QNoqvym1oFCPjfVEzI5E8b5ofI6AJjeHDdpnxnSLV-FCvsooBv9RwPT_SA1NvURXaD42LnY1&t=634751762881093750" type="text/javascript"></script>
  • 相关阅读:
    5.9编程练习
    linux下查看torch版本和cuda版本
    4.13编程练习
    C++ Primer Plus-3.7编程练习-第2题和第5题
    More on vim tips
    Method Calling in Perl
    换零钱 动态规划解法 C语言描述
    海伦平方根算法(LISP描述)
    expect 实现模拟交互
    tmux 入门
  • 原文地址:https://www.cnblogs.com/94cool/p/4398207.html
Copyright © 2011-2022 走看看