使用asp.net ajax来扩展框架,将javascript嵌入到程序集中可以很方便的部署自定义的控件,下面是嵌入时需要做的步骤
这里以MSDN中的向Web 服务器控件添加 ASP.NET AJAX 客户端功能为例,自定义控件需要实现IScriptControl接口,其中有2个方法GetScriptDescriptors()和GetScriptReferences(),这里GetScriptReferences()方法要注意了,其中就是返回js脚本引用,其实这里添加和引用和在ScriptManager中使用如下方式添加引用是一回事,
<asp:ScriptManager runat="server" id="sm">
<Scripts>
<asp:ScriptReference Assembly="Samples" Name="Samples.SampleTextBox.js" />
</Scripts>
</asp:ScriptManager>看到这个你也就应该知道在GetScriptReferences()方法中的实现了和属性的设置了
ScriptReference reference = new ScriptReference();
reference.Assembly = "Samples";
reference.Name = "Samples.SampleTextBox.js";
return new ScriptReference[] { reference };一模一样,这是在ScriptManager是通过标签的方式声明对脚本的引用,而后者是在自定义实现服务器控件中添加对脚本的引用,这里我说明一下,Assembly的属性对应的程序集的名称,reference.Name遵循的是[程序集命名空间].[JavaScript 文件名].js命名规定,
然后再到assembly.cs中添加如下这行代码
[assembly: WebResource("Samples.SampleTextBox.js", "application/x-javascript")]
编译生成dll,搞定!!!