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的匿名类是只读的,哎真不爽啊

posted @ 2008-10-09 17:47 andy.wu 阅读(1133) 评论(5) 编辑 收藏

 回复 引用   
#1楼 2008-10-09 17:50 wuyou332[未注册用户]
没啥含量。这点应用大家都明白
来点深刻的吧。不然别占首页了

 回复 引用 查看   
#2楼 2009-02-18 09:44 osoft1983      
虽然很简单,但是对初学者还是有意的,继续。
 回复 引用   
#3楼 2009-08-12 09:40 sky.vip.king[未注册用户]
引用osoft1983:虽然很简单,但是对初学者还是有意的,继续。

我觉得二楼讲得很好,虽然不是很深刻的,但是楼主把AjaxPro整个使用过程写的很清晰.
占首页是因为LZ,写的清晰.看着就能明白.

 回复 引用 查看   
#4楼 2009-08-18 13:30 liyonghui      
来点深刻的
 回复 引用 查看   
#5楼 2011-12-29 10:21 lao_liang      
楼主你好,如何传一个数组给后台?后台的形参怎么写?