自定义控件 嵌入的资源 用应
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);
}