好好学习:学习MagicAjax(一)

先做好准备工作:把AjaxCallObject.js复制到虚拟目录下的script目录下(在配置信息中与此对应),项目中添加MagicAjax.dll(官网地址是:http://www.magicajax.net/

1,需要WEB.CONFIG中 加入配置信息

            <magicAjax
            outputCompareMode="HashCode"
            tracing="false" scriptPath="~/aspnet_client/magicAjax" >
           <pageStore
               mode="NoStore"
               unloadStoredPage="false"
               cacheTimeout="5"
                  maxConcurrentPages="5"
               maxPagesLimitAlert="false"
           />
       </magicAjax>

<httpModules>
<add name="MagicAjax" type="MagicAjax.MagicAjaxModule, MagicAjax" />
</httpModules>

2,使用AJAXPANNEL实现AJAX功能,在aspx中差不多是这样的:

<%@Register TagPrefix="ajax" Namespace="MagicAjax.UI.Controls" Assembly="MagicAjax" %>
<ajax:AjaxPanel id="AjaxPanel1" runat="server">
</ajax:AjaxPanel>

3,把需要无刷新的控件放进AJAXPANNEL

4,对拖入的控件编写委托事件

5,MAGICAJAX处理刷新实际使用AJAXCALL,这个类似于POSTBACK ,但它只针对于 AJAXPANNEL中的控件,而且CALLPACK时有一个LOADING指示。可以用MagicAjaxContext.Current.IsAjaxCall判断是否是AJAXCALL事件(客户端引发事件)或者用MagicAjaxContext.Current.IsAjaxCallForPage (TRANSFER引发)

6,为了解决中文乱码问题,可以重新编译源代码,打开MagicAjaxModule.cs文件,看到
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            HttpContext context = ((HttpApplication)sender).Context;

            // Init private fields
            _threadAbortExceptionThrown = false;
            _request = context.Request;
            _response = context.Response;

_response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//加入这个支持中文
//..........................................................

7,通过AjaxCallHelper提供很多静态方法 ,不过还没怎么有机会用

8,当浏览器不支持JS页面也不会报错和变形,这个还不错。

9,还没有试过自定义控件,不知道会不会出问题。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值