Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)归海一刀published in(发表于) 2014/3/16 2:55:41 结合MS AJAX将js文件编译到动态链接库_[AJAX教程]
程序代码: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">
ID="UpdatePanelAnimator1" BorderColor="Green" Animate="true" UpdatePanelID="UpdatePanel1" runat="server" > UpdateMode="Conditional" runat="server"> runat="server">
赞