|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
觉得J2EE好像有很多工具,比如servlet,jboss,tomcat,ejb什么的,可是微软的.NET怎么什么也没有啊?在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增加定名空间usingSystem.Web.UI的援用。
那末要怎样在自界说类中利用这两个内部文件呢?
三,利用内部css资本
我们能够使用Page.ClientScript.GetWebResourceUrl办法来猎取到内部资本的地点,代码以下:
stringcssUrl=Page.ClientScript.GetWebResourceUrl(this.GetType(),
"ServerContrAssemblyInfo.cs.SelectCtlReSource.Stylesheet.css");
HtmlLinklink=newHtmlLink();
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文件中天生相似以下代码:
<linkrel="stylesheet"type="text/css"href="/WebResource.axd?d=21KpM8lphlA-zR5ejP1pnghDV1cXwkQpw-QlXFdu3jwwMymuuN49ab8qvx6fH66D6oQMw7WWdKIXCE8T4DOfe0ype4VWtox9HdA0pLREJOcBpgcflwup5Cm6zjgCUJwiGQlkWGk6_Bv-90hWtF9dAIDIeL5aB-0a7Rac1Uw5OnIOe2C70&t=634746559960937500"/>
<scriptsrc="/WebResource.axd?d=8E4J6LzCJ4MPILLeEtw_QNoqvym1oFCPjfVEzI5E8b5ofI6AJjeHDdpnxnSLV-FCvsooBv9RwPT_SA1NvURXaD42LnY1&t=634751762881093750"type="text/javascript"></script>
有理由相信是能提供更出色的性能。很多平台无法支持复杂的编译器,因此需要二次编译来减少本地编译器的复杂度。当然可能做不到java编译器那么简易。 |
|