这两天一直研究asp.net下Ajax技术,非了半天劲,也在网上找了几个例子 就是做不出来,气死我了。今天好不容做出来了 ,就贴出来大家分享一把,希望对大家有点帮助。此asp.net的Ajax效果的用的是AjaxPro.net框架,请大家先到网上下载AjaxPro.2.dll
下载地址:http://download.csdn.net/source/174477
添加引用:网站 - 添加引用 - 浏览 - 选中 AjaxPro.2.dll
配置Web.Config文件:
<httpHandlers>
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
前台代码以及注释:
<form id="form1" runat="server">
<script type="text/javascript" defer="defer">
//JavaScript代码一定以放在Form里面 否则会引起AjaxPro 未定义错误
// loading效果
AjaxPro.onLoading = function(b)
{
var a = document.getElementById("loadinfo");
a.style.visibility = b ? "visible" : "hidden";
}
function GetTime()
{
// 调用服务端方法 AjaxPro的好处就在于可以通过Js调用后台的方法。强
//调用方法:类名.方法名 (参数为指定一个回调函数) 这里值得是服务端的类名和方法名
ajaxpro.GetServerTime(callback); //callback参数是指回调函数 如下
}
function callback(res) //回调函数,显示结果
{
alert(res.value);
}
</script>
<div id="loadinfo" style="visibility:hidden;position:absolute;left:0px;top:0px;background-color:Red;color:White;">Loading...</div>
<input id="Button1" type="button" value="Get ServerTime" onclick ="javascript:GetTime();void(0)" />
</form>
服务端代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using AjaxPro;
public partial class ajaxpro : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(ajaxpro));
}
[AjaxPro.AjaxMethod]
//声明为Ajax方法 如果丢掉此处 可能引起前台 ajaxpro.GetServerTime “对象不支持此方法和属性” 的javascript的错误
public static string GetServerTime()
{
System.Threading.Thread.Sleep(2000);
return DateTime.Now.ToString();
}
}
常见错误:
Ajaxpro 未定义:
1.没有将AjaxPro加载放在form1以内,有篇文章写得不错: 'AjaxPro'未定义错误的原因&javascript顺序执行&AjaxPro机制.
2.忘记在服务器的web.config里面添加Handler了:
在<system.web>节点下加入:
< add verb ="POST,GET" path ="ajaxpro/*.ashx" type ="AjaxPro.AjaxHandlerFactory, AjaxPro.2" />
</ httpHandlers >
3.ajaxpro.GetServerTime “对象不支持此方法和属性”
GetServerTime 前没有声明为Ajax方法 添加: [AjaxPro.AjaxMethod]
转载地址: http://hi.baidu.com/lanxigang/blog/item/f3e3f8fa09de72d6b58f31e9.html