【转】WebResource实现在自定义控件中内嵌JS文件
2021-07-03 06:04
标签:asp 命名 rgs 界面 技术分享 解决 添加 时间戳 syn 在类库中的资源 其他项目中要使用 需要嵌入才行 参考文献:WebResource实现在自定义控件中内嵌JS文件 1. WebResource简介 ASP.NET(1.0/1.1)给我们提供了一个开发WebControl的编程模型,于是我们摆脱了asp里面的include模式的复用方式。不过1.0/1.1提供的Web控件开发模型对于处理没有image、css等外部资源的组件还算比较得心应手,script虽然很多时候也是外部资源,但在开发控件的时候我们习惯把script使用Page.Register...Script()来嵌入模块,因为紧凑的东西更便于我们复用,用一个dll就可以解决问题。 ASP.NET 2.0提供的Web Resources管理模型,很好的解决了image、css、script等外部资源的管理问题。WebResourceAttribute是一个metedata attribute,它可以让我们访问到嵌入到assembly中的资源。 2. WebResource的使用 在使用内嵌的server side资源时,首先必须把资源文件Embedded内嵌到我们的assembly程序集中,然后在Application中的AssemblyInfo.cs文件中添加上这些文件的引用。具体过程: ① 文件内嵌:将所要内嵌的文件【生成操作】属性更改为——》嵌入的资源 ② 文件内嵌完成后,下面就需要对已经内嵌的文件进行引用。 引用方法有两种: 方法一:找到AssemblyInfo.cs文件,添加代码: [assembly: WebResource("eWebapp.Upload.upLoad.js", "text/javascript")] 同时,还需要添加命名空间using System.Web.UI; 方法二:在任何一个class文件中,均可添加引用的声明; [assembly: WebResource("eWebapp.Upload.upLoad.js", "text/javascript")] (放在最高级namespace外就行) 参数说明:第一个是资源的名字,第二个是资源的mime-type名。 [assembly: System.Web.UI.WebResource("eWebapp.Upload / js / upLoad.js
", " text/javascript ")] ③ 以上准备工作完成后,下面就可以获取内嵌的资源文件了。 protected override
void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer) {
writer.AddAttribute("onchange", "newUpload(this);"); base.AddAttributesToRender(writer); } 注意:此段主要是为控件追加onchange事件,也可以通过在创建界面时直接添加,如: f.Attributes.Add("onchange",
"javascript:newUpload(this);"); public class Upload : System.Web.UI.WebControls.WebControl { protected
override void
OnPreRender(EventArgs e) { Page.ClientScript.RegisterClientScriptInclude("upLoad", Page.ClientScript.GetWebResourceUrl(this.GetType(), "eWebapp.Upload.upLoad.js")); base.OnPreRender(e); } } ④ 生成的页面时这样的: 其中的 小提示: 1、 看到网上有人说这样不管用,原因是VS默认的命名空间搞了鬼。 问题描述:VS会自动把default namespace加到资源文件前面。 解决:只要把默认名称空间改为空就可以了。 但是,在研究的过程中,我并没有碰到此问题。或许如果实在弄不成,也不知道哪里错了,不妨用反编译工具Reflector来查看一下生成的资源文件是否正确。 【转】WebResource实现在自定义控件中内嵌JS文件 标签:asp 命名 rgs 界面 技术分享 解决 添加 时间戳 syn 原文地址:http://www.cnblogs.com/wuling129/p/7125590.html
资源的名字命名一般包括三个部分:
缺省的命名空间就是项目的命名空间,文件名就是资源文件的名称。
中间扩展命名空间就是项目中的目录结构.如果你的资源文件就在项目的根目录下,扩展命名空间就不需要了,直接这样写就可以了. . 但是如果你在项目中产生目录结果的话,就要使用扩展命名空间了。例如,假设以上资源文件存在目录Js下:
上一篇:jquery选择器
文章标题:【转】WebResource实现在自定义控件中内嵌JS文件
文章链接:http://soscw.com/index.php/essay/101133.html