步行者

--勿在浮沙筑高台
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Hello, AjaxPro

Posted on 2008-12-31 11:58  Niels  阅读(337)  评论(0编辑  收藏  举报

1. 从codeplex下载AjaxPro,下载地址 http://www.codeplex.com/AjaxPro/Release/ProjectReleases.aspx
    下载解压后的文件中包括一个AjaxPro.dll, 一个AjaxPro.2.dll,如果您的程序基于.NET 1.1,则使用AjaxPro.dll,如果是.NET 2.0及以上,则使用AjaxPro.2.dll

 2. 新建一个Web项目, 添加对AjaxPro.2.dll(或AjaxPro.dll)的引用,
    在Web.config中的<httpHandlers>中加入一行:
    <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
    如果为.NET1.1则为
    <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
    如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
</httpHandlers>
</system.web>
</configuration>

 3. 新建一个页面,假如页面文件名为WebForm1.aspx,在WebForm1.aspx.cs中添加一个方法:

[AjaxPro.AjaxMethod]
public DateTime GetServerTime()
{
return DateTime.Now;
}
并在Page_Load中添加对该类的注册
AjaxPro.Utility.RegisterTypeForAjax(typeof(WebForm1));
WebForm1.aspx.cs完整代码如下:
namespace AjaxProDemo
{
public class WebForm1
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(WebForm1));
}
[AjaxPro.AjaxMethod]
public DateTime GetServerTime()
{
return DateTime.Now;
}
}
}

4. 在页面文件中,添加一个button和一个span

    <input type="button" value="异步调用"  onclick="asyncGetServerTime()"/>
    <span id="result"></span>

添加如下脚本:

function asyncGetServerTime()      {         AjaxProDemo.WebForm1.GetServerTime(getServerTime_callback); // 异步调用,即不等服务器返回结果,该函数就可向下执行

    }

    function getServerTime_callback(res) // 回调方法,在服务器返回结果的时候调用     {         document.getElementById('result').innerHTML = res.value;

    }

      这样,在界面上点击button的时候,你会发现页面没有刷新,但下面的span上面显示了服务器段返回的服务器时间