rom:http://www.lmwlove.com/ac/ID879
一,首先当然是创建这两个文件了。我们在自定义控件的项目内创建两个文件,分别为JScript.js与Stylessheet.css文件。要使它们成为嵌入的资源,最重要的是在文件目录上点击右键,选择属性,在生成操作的选项选择"嵌入的资源",如下如图所示:
分别设置好JScript.js与Stylessheet.css文件的该属性,这样,文件的处理就完成了。
二,对嵌入资源的引用。
在AssemblyInfo.cs文件中对资源的引用。
除了设置文件的属性外,我们还需要设置对资源的引用,具体方法是:打开项目的AssemblyInfo.cs文件,在文件的最后面添加如下两行代码:
[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方法来获取到外部资源的地址,代码如下:
"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来注册,示例代码如下:
好了,这样就完成了在自定义控件中对外部资源的引用。平时我们看到页面中生成的WebResource.axd后面添加一堆的字符串,总觉的webresource会是一个很复杂的东西,其实,弄懂了它的规则后,这些东西就很容易理解并记住了,大家做做练习吧。
我们在上例中注册的两个文件,最终会在html文件中生成类似如下代码:
<script src="/WebResource.axd?d=8E4J6LzCJ4MPILLeEtw_QNoqvym1oFCPjfVEzI5E8b5ofI6AJjeHDdpnxnSLV-FCvsooBv9RwPT_SA1NvURXaD42LnY1&t=634751762881093750" type="text/javascript"></script>