最近一直想用ajax作点什么。但是又不想用ajax.dll,今天遇然发现了一个Dotnet自己带的一个轻量级ajax,其实所谓轻量级只是在网上找到的一个形容词而以,我也不知道大至的说法。
ICallbackEventHandler接口,可以直接实现ajax的无刷新回调功能。该接口有两个方法。RaiseCallbackEvent和GetCallbackResult。
大至使用方法如下:
Page_Load中需要使用以下代码
string cbStrScript=Page.ClientScript.GetCallbackEventReference(this,"RaiseCallbackEvent的参数名","客户端function名称","客户端function脚本");
(重载)string cbStrScript=Page.ClientScript.GetCallbackEventReference(this,"RaiseCallbackEvent的参数名","客户端function名称","客户端function脚本","出错时引用的function名",同步或异步设定的bool值);
客户端向服务器请求的function脚本可以为以下方式生成:
string cbScript="function callServer(RaiseCallbackEvent的参数名,context){"+cbStrScript+"}"
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"客户端向服务器请求的function名称,即:callServer","客户端向服务器请求的function脚本,即:字符串cbScript的内容",是否添加脚本标记-true);
以上为ICallbackEventHandler接口的使用部份。
以下为ICallbackEventHandler接口的实现。
public void RaiseCallbackEvent(String eventArgument)
{
接收到客户端的内容(eventArgument),并处理代码
}
public string GetCallbackResult()
{
向客户端返回结果的处理代码
}
而客户端的使用则为直接引用
(发送请求)callServer("发送到服务器端的内容","发送前要运行的脚本,也可为空");
(引用回调)
function 在GetCallbackEventReference设定的客户端function名称(arg, context)
{
ary为服务器端GetCallbackResult方法return的内容
context目前我还不知道返回的是什么..
}
以上存属本人记忆使用,如果有兴趣的人可以直接在SDK2.0内搜索 ClientScriptManager.GetCallbackEventReference 方法,里面会有更详细的代码。