中间左侧广告位
在ASP.NET 2.0中内置了对Ajax的支持,即ICallBackEventHandler接口。实际上CallBack是微软最早实现Ajax的策略之一,在ICallBackEventHandler接口的实现中,微软提供了完善的脚本库和一整套实现服务器端无刷新回调的封装机制。
但是由于微软封装得过于严密,使得开发者没有任何的发挥余地,在很大程度上限制了CallBack在实际开发中的使用。
要使用CallBack机制,首先在Page类中实现ICallBackEventHandler接口。ICallBackEventHandler接口提供了两个方法:RaiseCallBackEvent方法执行接收客户端请求,并产生回送的文本,GetCallBack-Result方法返回字符串形式的服务器处理请求的回应。现在来看看实现了ICallBackEventHandler接口的后台处理Page类的代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page ICallbackEventHandler
{
protected void Page_Load(object sender EventArgs e)
{
}
#region ICallbackEventHandler 成员
private string msg;
public string GetCallbackResult()
{
return msg;
}
public void RaiseCallbackEvent(string eventArgument)
{
string str = eventArgument;
msg = "服务器获得你的消息,时间:" + DateTime.Now.ToShortTimeString() + "
你的消
息为:" + str + "
你的地址:" + this.Request.UserHostAddress;
}
#endregion
}
实际上在上例中,完全实现了ICallBackEventHandler接口的两个方法。在RaiseCallBackEvent方法中接收客户端发送的字符串请求,并组装了服务器响应字符串。而在GetCallBackResult方法中,返回服务器响应的字符串。
现在来看看前台的javascript脚本: