Ajax.NET Pro 简单例子和注意
-----------------------------------------------------------------------------------------------------------
public partial class AjaxPro_example_Default : System.Web.UI.Page2
{3

4
protected void Page_Load(object sender, EventArgs e)5
{6
AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxPro_example_Default));//必须保证每次回发时都执行此注册语句7
}8

9
[AjaxPro.AjaxMethod]10
public DateTime GetServerTime()11
{12
return DateTime.Now;13
}14
}★前台代码如下:当页面载入后,间隔一秒从服务器上取得时间并显示在aspx页面上的divMsg中
----------------------------------------------------------------------------------------------------
<head runat="server">2
<title>无标题页</title>3
<script type="text/javascript">4
function getServerTime()5
{6
//AjaxPro_example_Default.GetServerTime(getServerTime_callback); // asynchronous call 注释掉:示例中的原代码7

8
window.setInterval("AjaxPro_example_Default.GetServerTime(getServerTime_callback)",1000);//每隔一秒调用一次 9
}10

11
// 回调函数12
function getServerTime_callback(res)13
{14
//alert(res.value);//注释掉:示例中的原代码15
document.getElementById("divMsg").innerText=res.value;//将时间值填充到div中呈现16
}17

18
window.onload=getServerTime;//页面载入时执行19

20
</script>21
</head>22
<body >23
<form id="form1" runat="server">24
<div id="divMsg" style="width: 100px; height: 100px">25
</div>26
</form> 27
</body>28
</html>★值得注意的几个要点:
----------------------------------------------------------------------------------------------------
1.必须在Web应用程序的根目录下的Web.config文件的<system.web>结点内中添加:
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
</httpHandlers>
2. 服务端必须在Page_Load中注册包含调用方法的类,并且必须保证页面每次回发时都执行注册语句。
即不能写成:
if(!IsPostBack)
{ //注册语句不能写在此处,否则页面回发后,客户端将无法访问到AjaxPro_example_Default类
AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxPro_example_Default));
}
3. 服务端只有用[AjaxPro.AjaxMethod]标记过的方法,才能被客户端调用
4. 客户端页面上必须有<form runat="server">标记,否则不能访问在服务端已注册的类
★遗憾之处:
----------------------------------------------------------------------------------------------------
不能跨页面调用,只能在与后代cs相关联的前台页面上访问注册过的类或方法,要是可以在一处(如global文件中)注册所有需要在前台访问的对象,而前台不论是哪个位置的html或aspx页面都可以访问到注册过的对象,那将是更加的方便灵活。


浙公网安备 33010602011771号