用AjaxPro和ASP.NET结合实现无刷新AJAX效果

来源:互联网 发布:钢琴谱编辑软件 编辑:程序博客网 时间:2024/05/28 11:28

这个实例我用到了AjaxPro.2.dll和ASP.NET 2.0,其中AjaxPro.2.dll可以到http://groups.google.com/group/ajaxpro/下载

这里举例使用AjaxPro获取服务器时间:

aspx.cs里的代码:

  1. protected void Page_Load(object sender, EventArgs e) 
  2. {  
  3. AjaxPro.Utility.RegisterTypeForAjax(typeof(MyAjaxTest));//把此类注册  
  4. }  
  5. [AjaxPro.AjaxMethod]//可以用Javascript调用的方法要加上这个属性  
  6. public string GetServerTime(int a)//这个参数没用,只是没有参数次方法调用不了,可能是AjaxPro.2的一个bug  
  7. {  
  8. Thread.Sleep(1000);//模拟网络延时,看Ajax展现无刷新异步传输  
  9. return DateTime.Now.ToString();  

aspx里只有一个按钮和一个文本框:

  1. <input type="button" onclick='getServerTime();' style="width: 112px" value="getServerTime()" id="Button1"/> 
  2. <input id="textbox" type="text" /><div id="loading" style="display:none;">loading...</div> 

当然还有Javasript代码: 

  1. function getServerTime() 
  2. {  
  3. Test.MyAjaxTest.GetServerTime(4,getServerTime_callback);//那个4是aspx.cs文件里定义的GetServerTime方法里的参数,后面的是回调方法,如果直接调用(即省略回调方法参数)就无法实现异步调用,在服务器为返回数据的前,浏览器将失去响应  
  4. document.getElementById("loading").style.display="";//显示loading,告诉用户我们的网页没出问题  
  5. }  
  6. function getServerTime_callback(res)  
  7. {  
  8. form1.textbox.value=res.value;//res就是GetServerTime返回的对象,使用value得到它的值  
  9. document.getElementById("loading").style.display="none";  

用了AjaxPro感觉很不错,了有点小bug,不过可以实现不用ASP.NET自己的POST而得到数据确实爽啊~~