轻量级Ajax解决方案:Anthem.NET初探
官方网站:http://anthemdotnet.com
下载地址:http://sourceforge.net/projects/anthem-dot-net
相比较AJAX.NET而言,Anthem.NET绝对称得上轻量级,而且对于新手而言,它的学习曲线接近于零。至于它与AJAX.NET的对比,Dflying Chen 在ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较中已经写得很详细了,里面有一个Hello World形式的简单例子。
下面看一下它的使用方法,首先下载源代码包,里面没有编译生成DLL,需要我们自己编译,先将Anthem-Examples-2003文件夹设置为虚拟目录(Anthem-Examples-2005对应VS 2005),打开Anthem-2003.sln(或Anthem-2005.sln),按Release方式编译。
然后在工具箱中添加“Anthem”选项卡,在该选项卡中添加刚才生成的DLL文件,你会在这里找到对应ASP.NET的大部分控件。
Anthem.NET为开源控件,在我们下载的代码包中Anthem-Examples-2003(Anthem-Examples-2005对应VS 2005)为它的开发范例。
Hello World
从工具箱中向页面中拖入一个Button按钮和一个Label按钮,双击Button,在事件处理代码中加入代码:
更新时只需传入控件ID即可
下载地址:http://sourceforge.net/projects/anthem-dot-net
相比较AJAX.NET而言,Anthem.NET绝对称得上轻量级,而且对于新手而言,它的学习曲线接近于零。至于它与AJAX.NET的对比,Dflying Chen 在ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较中已经写得很详细了,里面有一个Hello World形式的简单例子。
下面看一下它的使用方法,首先下载源代码包,里面没有编译生成DLL,需要我们自己编译,先将Anthem-Examples-2003文件夹设置为虚拟目录(Anthem-Examples-2005对应VS 2005),打开Anthem-2003.sln(或Anthem-2005.sln),按Release方式编译。
然后在工具箱中添加“Anthem”选项卡,在该选项卡中添加刚才生成的DLL文件,你会在这里找到对应ASP.NET的大部分控件。
Anthem.NET为开源控件,在我们下载的代码包中Anthem-Examples-2003(Anthem-Examples-2005对应VS 2005)为它的开发范例。
Hello World
从工具箱中向页面中拖入一个Button按钮和一个Label按钮,双击Button,在事件处理代码中加入代码:
Label1.Text = DateTime.Now.ToString();
Label1.UpdateAfterCallBack = true;
请注意,它比我们平时写代码时多了一句“Label1.UpdateAfterCallBack = true;”,在Anthem.NET中,每次CallBack时需要更新的控件,只需要把其UpdateAfterCallBack属性设置为true即可。一般我们都会有多个控件需要更新,可以写一个方法Label1.UpdateAfterCallBack = true;
public class AnthemHelper
{
/// <summary>
/// 更新Anthem控件的值
/// </summary>
/// <param name="ctrls">Anthem控件集合</param>
public static void Update(params IUpdatableControl[] ctrls)
{
foreach (IUpdatableControl ctrl in ctrls)
{
ctrl.UpdateAfterCallBack = true;
}
}
}
}
{
/// <summary>
/// 更新Anthem控件的值
/// </summary>
/// <param name="ctrls">Anthem控件集合</param>
public static void Update(params IUpdatableControl[] ctrls)
{
foreach (IUpdatableControl ctrl in ctrls)
{
ctrl.UpdateAfterCallBack = true;
}
}
}
}
更新时只需传入控件ID即可
AnthemHelper.Update(txtName, lblTime, dgrdEmployee);