自定义控件 嵌入的资源 用应

1. 将此要嵌入的js文件,设置成为嵌入的资源。Ps: 此时生成的dll中,此js文件的名称会被vs更改为: 默认空间+相对跟路径+自身文件名称。所以在代码中引用此js的时候,要以上面的名称为标准.

2. 在程序集的默认命名空间上,冠上属性:
[assembly:WebResource("FileName.js", "application/x-javascript")]。注意这里的filename就是上面提到的名称。

代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Reflection;

[assembly: WebResource(
"CustomControl.JScript1.js", "text/javascript")]
namespace CustomControl

 
3. 在控件(包括control,及其所有的子类)中,重写其OnPreRender,或OnInit方法,在方法中注册资源文件。
   3.1.Page.ClientScript.RegisterClientScriptResource(Type t,Stringresources) 注册资源文件,其中第一个属性Type,应为此控件的类型,第二个位上面提到的名称。
   3.2.若需要在页面加载时调用函数,可使用函数
Page.ClientScript.RegisterStartupScript(Typet ,String key,String script)
Type与上类似,key….,script为加载时要运行的代码,可调用上面注册的js文件里的函数.写法为”<script>startup()</script>”

 

代码
protected override void OnPreRender(EventArgs e)
{
if (Page != null)
{
ClientScriptManager manager
= this.Page.ClientScript;
manager.RegisterClientScriptResource(
typeof(RequiredFieldValidator), "CustomControl.JScript1.js");
}
base.OnPreRender(e);
}

 

posted @ 2010-04-02 14:24    阅读(220)  评论(0编辑  收藏  举报