AjaxPro基础知识 and FAQ

AjaxPro基础知识 and FAQ

tags: ajaxpro sample

主要是一些用AjaxPro的经验,希望能给需要的人有一些帮助。

官方网站:http://www.codeplex.com/AjaxPro(New)

演练(walkthrough)

是从实际的项目中抽取出来的,目的是备忘,以后看时有条理。
我只用到了ajaxpro.2.dll

1. 在web.config中的system.web/httpHandlers小节:
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>

2. 在Page_Load事件中注册页面类型:



protected void Page_Load(object sender, EventArgs e)

{

    AjaxPro.Utility.RegisterTypeForAjax(typeof(WebAdmin_RefreshCompleteScore));

}




注意:必须使用typeof,如果使用了this.GetType()则没有效果。因为没有相关文档,我也没费那心思,所以不是很清楚原因。(这个问题耗费了我两天的时间才顿悟,粗心大意加自由散漫害死人啊, 以后一定照标准做)

3. 将方法标记为[AjaxPro.AjaxMethod]:



[AjaxPro.AjaxMethod]

public string Hello()

{

    return "Hello, now is " + DateTime.Now;

}



4. 在页面中写js脚本



<script type="text/javascript" language="javascript">

function Hello()

{

    AjaxPro.timeoutPeriod = 150000 // 设置超时的时间, 这里只是演示一下,大多数情况不用写

    var info = "请稍候,正在处理数据..."

    $('#cc_lblMessage').html(info);

    WebAdmin_RefreshCompleteScore.Hello(CallBack);

}

function CallBack(rc)

{

    alert(rc.value);

}

</script>



Q: 如何同步调用

var result = ClassName.func();
就是同步调用

Q: 服务器端的方法能返回对象吗

可以的,这个真是方便,估计ajaxpro直接处理成json了,哈哈,在c# 3中使用匿名类更爽。



[AjaxPro.AjaxMethod]

public object Delete(int id)

{

    ......

    if (userCnt > 0)

    {

        return new { IsSuccessful = false, Message = "该用户组存在用户,不能删除。" };

    }

    else

    {

        ......

        return new { IsSuccessful = true, Message = "该用户组已删除。" };

    }

}



ps: c# 3的匿名类是只读的,哎真不爽啊

你可能感兴趣的:(Ajax)