1)添加AjaxPro.dll应用;
2)配置web.config;
3)写服务端方法,加[AjaxPro.AjaxMethod]申明;
4)客户端调用服务端方法;(ajaxpro最大的优点:客户端js中直接调用服务端方法)
web.config配置
在system.web节点下添加
<system.web>
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
</system.web>
客户端代码
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>AjaxPro onLoading</title>
</head>
<body>
<form id="form1" runat="server">
<div id="loadinfo" style="visibility:hidden;background-color:Red;color:White;">Loading</div>
<input id="Button1" type="button" value="Get ServerTime" onclick ="javascript :GetTime();void(0)" />
<script type="text/javascript" defer="defer">
// loading效果
AjaxPro.onLoading = function(b)
{
var a = document.getElementById("loadinfo");
a.style.visibility = b ? "visible" : "hidden";
}
function GetTime()
{
// 调用服务端方法
//调用方法:类名.方法名 (参数为指定一个回调函数)
myLoad.GetServerTime(callback);
}
function callback(res) //回调函数,显示结果
{
alert(res.value);
}
</script>
</form>
</body>
</html>
注:javascript代码放在form内结束处,确保可以访问AjaxPro对象,否则提示AjaxPro未定义;因为在服务端page_load输出js到页面后才到找到AjaxPro对象;且javascript的defer="defer",页面加载时先不执行此代码。
服务端代码:
public partial class myLoad : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(myLoad)); //注册ajaxPro,括号中的参数是当前的类名
}
[AjaxPro.AjaxMethod] //申明是ajaxPro方法
public string GetServerTime()
{
System.Threading.Thread.Sleep(2000);
return DateTime.Now.ToString();
}
}