Ajax可以在客户端回调服务器方法,callback也可以,Ajax和callback的区别在于以下两点:
一。callback只能返回string类型,而ajax可以返回其它类型,如dataset,还可以是你自己定义的类型。
二。ajax的逻辑要比callbcak简单一些,
callback分为下面几步:
1)在服务器端注册客户端脚本
string callbackRef = Page.ClientScript.GetCallbackEventReference(this, "param", "handleResultFromServer", "context");
//handleResultFromServer是服务器处理完后返回参数到的那个客户端函数的函数名
string callbackScript = "function CallTheServer(param, context)" + "{ " + callbackRef + "} ;";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CallTheServer", callbackScript, true);
2)客户端调用上面的函数CallTheServer传递参数到服务器端
3)在服务器接收参数并处理
4)服务器端返回string类型参数给客户端
5)客户端接收参数并处理
ajax分下面几步:
1)在服务器端注册客户端脚本
Ajax.Utility.RegisterTypeForAjax(typeof(PAGECLASS));//PAGECLASS是页面的类名
或者也可以直接在客户端手工加上脚本:
<script language="javascript" src="ajax/common.ashx"></script>
<script language="javascript" src="ajax/NAMESPACE.PAGECLASS,ASSEMBLYNAME.ashx"></script>
2)客户端直接调用服务器端方法(但比该方法多一个参数,就是服务器处理完后返回参数到的那个客户端函数的函数名)
3)服务器端方法返回对象给客户端
4)客户端接收并处理
尤其是在一个页面要处理几个回调的时候,ajax会更方便一些。