使用AjaxPro实现ajax效果

AjaxPro.Net是一个优秀的.net环境下的ajax框架,用法很简单,主要有以下几点:
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"
    
titleAjaxPro 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();
    }

}


posted @ 2009-07-23 11:50  孖仔爸爸  阅读(231)  评论(0编辑  收藏  举报