您的位置:首页 > 其它

好好学习:学习MagicAjax(一)

2007-07-19 18:53 218 查看
先做好准备工作:把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,还没有试过自定义控件,不知道会不会出问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: