WebResource实现在自定义控件中内嵌JS文件

  1. WebResource简介

       Syntax : eWebapp.Upload/ upLoad.js -->eWebapp.Upload.upLoad.js

 1. 内嵌资源的文本名类似eWebapp.Upload.upLoad.js

                      base.OnPreRender(e);

1、  见到网络有人讲这么无论用,原因是VS暗许的命名空间搞了鬼。

 2. 能源文件必需内放置程序集中。

援引方法有三种:

     }

         writer.AddAttribute("onchange", "newUpload(this);");

[assembly: System.Web.UI.WebResource("eWebapp.Upload / js / upLoad.js ", " text/javascript ")]

[assembly: WebResource("eWebapp.Upload.upLoad.js", "text/javascript")]

                 Page.ClientScript.RegisterClientScriptInclude("upLoad",                        Page.ClientScript.GetWebResourceUrl(this.GetType(), "eWebapp.Upload.upLoad.js"));

注意:此段重假使为控件追加onchange事件,也能够因而在创立界面时直接助长,如:

    ASP.NET 2.0提供的Web Resources管理模型,很好的解决了image、css、script等外界能源的管制难点。WebResourceAttribute是三个metedata attribute,它能够让我们访问到嵌入到assembly中的能源。

 

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

       {

 图片 1 

    在行使内嵌的server side能源时,首先必得把能源文件Embedded内嵌到大家的assembly程序集中,然后在Application中的AssemblyInfo.cs文件中增添上这一个文件的引用。具体进程:

仿效文献:WebResource落成在自定义控件中内嵌JS文件  

此中的<script src="/WebResource.axd?d=...... 就是对剧本财富的调用。

[assembly: WebResource("eWebapp.Upload.upLoad.js", "text/javascript")]

(放在最高档namespace外就行)

  1. WebResource的使用

艺术二:在别的一个class文件中,均可增加援引的表明;

         base.AddAttributesToRender(writer);

<script src="/WebResource.axd?d=SfSlYQLv-RU-lSlTT0gProNFY7jkKs9lj16Lbul83Y0oicWZcUHLXICfPyGF1YsG0&amp;t=633813613197656250" type="text/javascript"></script>

 

① 文件内嵌:将所要内嵌的文本【生成操作】属性退换为——》内置的能源

 

参数表达:率先个是资源的名字,第三个是能源的mime-type名。
能源的名字命名日常包含八个部分:<缺省的命名空间.><扩展命命名空间.><文件名>
缺省的命名空间就是项目标命名空间,文件名就是能源文件的名号。
个中扩充命名空间就是连串中的目录结构.倘令你的能源文件就在档案的次序的根目录下,扩充命名空间就无需了,直接那样写就能够了. <缺省的命名空间.> <文件名>. 不过只要你在品种中发出目录结果的话,将要选择扩展命名空间了。举个例子,假使以上能源文件存在目录Js下:

f.Attributes.Add("onchange", "javascript:newUpload(this);");

解决:一旦把暗中同意名称空间改为空就足以了。

③ 以上计划专业产生后,上边就足以获得内嵌的财富文件了。

     protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer)

              protected override void OnPreRender(EventArgs e)

   }

 图片 2 

何况,还亟需加多命名空间using System.Web.UI;

在类库中的财富  其余项目中要选取 需求停放才行

     {

② 文件内嵌完成后,下边就需求对曾经内嵌的公文举行援用。

小提示:

 备注:

          WebResource.axd?d=加密后的标志符 & T = 时间戳值。
          其中:

           }

措施一:找到AssemblyInfo.cs文件,增多代码:

④ 生成的页面时那样的:

 

    ASP.NET(1.0/1.1)给大家提供了叁个支出WebControl的编制程序模型,于是大家摆脱了asp里面包车型地铁include格局的复用格局。可是1.0/1.1提供的Web控件开采模型对于拍卖未有image、css等外界财富的零部件还算相比百发百中,script尽管相当多时候也是表面能源,但在支付控件的时候大家习贯把script使用Page.Register...Script()来松手模块,因为紧密的事物更有助于大家复用,用叁个dll就足以解决难点。

 3. 再次来到的能源文件Url深入分析:

           " d " 代表呼吁 Web 能源。  (encrypted identifier)
           " t " 是 timestamp 对程序集, 那有助于在明确假设已经对财富的更换伏乞。

      能源名必需和AssemblyInfo.cs文件中宣称的平等。假如财富名错误或文件不设有,在地方中变化的脚步就达不到预期结果。

              {

标题陈诉:VS会自动把default namespace加到财富文件前边。

唯独,在斟酌的历程中,小编并从未遇上此主题材料。恐怕假如实际弄不成,也不掌握哪里错了,无妨用反编写翻译工具Reflector来查看一下变通的能源文件是或不是正确。

 

本文由银河网址发布于银河网址,转载请注明出处:WebResource实现在自定义控件中内嵌JS文件

您可能还会对下面的文章感兴趣: