结合MS AJAX将js文件编译到动态链接库_[AJAX教程]
		
			为了使javascript代码不被窃取,我们可以将js文件编译成动态链接库(dll)文件。下面为了演示这一功能,创建了一个控件。
 程序代码:http://www.cnblogs.com/Files/hblynn/SampleControlsCS.rar
一、创建一个类库项目,命名为UpdateAnimate。
二、向项目中添加引用System.Web, System.Drawing, System.Web.Extensions
三、向项目中添加一个Jscript的文件UpdatePanelAnimation.js
四、向文件中添加如下代码:
BorderAnimation = function(color) 
{
 this._color = color;
}
BorderAnimation.prototype = 
{
 animate: function(panelElement) 
 {
 var s = panelElement.style;
 s.borderWidth = '2px';
 s.borderColor = this._color;
 s.borderStyle = 'solid';
 window.setTimeout(
 function() 
 {
 {
 s.borderWidth = 0;
 }
 },
 500);
 }
}
这段代码中,包含一段临时改变UpdatePanel控件样式的方法 
五、解决方案资源管理器中,右键查看UpdatePanelAnimation.js的属性,把高级中的“生成操作”属性设置成“嵌入的资源”。
六、向项目中添加一个类CustomControl
七、替换类中的代码:
using System;
using System.Drawing;
using System.Web.UI;
using System.Web;
using System.Globalization;
namespace UpdateAnimate
{
 public class UpdatePanelAnimationWithClientResource : Control
 {
 private string _updatePanelID;
 private Color _borderColor;
 private Boolean _animate;
 public Color BorderColor
 {
 get
 {
 return _borderColor;
 }
 set
 {
 _borderColor = value;
 }
 }
 public string UpdatePanelID
 {
 get
 {
 return _updatePanelID;
 }
 set
 {
 _updatePanelID = value;
 }
 }
 public Boolean Animate
 {
 get
 {
 return _animate;
 }
 set
 {
 _animate = value;
 }
 }
 protected override void OnPreRender(EventArgs e)
 {
 base.OnPreRender(e);
 if (Animate)
 {
 UpdatePanel updatePanel = (UpdatePanel)FindControl(UpdatePanelID);
 string script = String.Format(
 CultureInfo.InvariantCulture,
 @"
Sys.Application.add_load(function(sender, args) {{
var {0}_borderAnimation = new BorderAnimation('{1}'); 
var panelElement = document.getElementById('{0}');
 if (args.get_isPartialLoad()) {{
 {0}_borderAnimation.animate(panelElement);
 }}
}})
",
 updatePanel.ClientID,
 ColorTranslator.ToHtml(BorderColor));
 ScriptManager.RegisterStartupScript(
 this,
 typeof(UpdatePanelAnimationWithClientResource),
 ClientID,
 script,
 true);
 }
 }
 }
}
八、向AssemblyInfo.cs文件中添加如下行:
[assembly: System.Web.UI.WebResource("UpdateAnimate.UpdatePanelAnimation.js", "application/x-javascript")]
九、生成项目。
控件演示:
一、创建一个Ajax-enabled类型的网站项目。
二、向网站跟目录下添加bin目录。
三、从控件项目的bin\Debug或 bin\Release目录拷贝UpdateAnimate.dll到网站bin目录里。
四、替换Default.aspx的内容并运行程序:
 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register TagPrefix="Samples" Namespace="UpdateAnimate" Assembly="UpdateAnimate" %>
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 ScriptReference http://www.cnblogs.com/hblynn/archive/2007/02/01/637312.html