MagicAjax装配
分类: AJAX ASP.NET 开发积累 2009-09-22 17:03 192人阅读 评论(0) 收藏 举报
MagicAjax装配
2007-09-10 14:51
(一)版本
(二).NET下安装
AjaxPanel
AjaxZone
ClientEventTrigger
KeyClientEventWrapper
(三)配置
<section name="magicAjax" type="MagicAjax.Configuration.MagicAjaxSectionHandler, MagicAjax"/>
如果你的web.config 里没有<configSections></configSections>
请copy下面的片断,并确保它们是存放在<configuration></configruation>里的
<!--**************************************************-->
<configSections>
</configSections>
<!--**************************************************-->
下一步,在<configure></configure>标签里创建如下的内容
<magicAjax
</magicAjax>
参数解释如下:
MagicAjax
一.scriptPath 我们刚才提到的那两个脚本的存放路径,这个参数在设置的时候以~/ ,也就是站点的根目录作为一个出发点。比如,你要设置magicajax的js脚本到站点的根目录的blog下的script里,则写成 ~/blog/script。其余情况大家自己推理~
二.outputCompareMode 脚本输出时的比较模式 有三种方式 FullHtml、HashCode、MD5
HashCode即可。具体的细节将在后面的章节里讲述。
三. tracing 是否跟踪如果设置为true的话,则在每次响应Ajax请求的时候会弹出一个alert来显示具体要加载的脚本
仅用于调试
PageStore 用于配置Ajax的js脚本的缓存的标签
一.mode Page 对象存储的模式有三种方式 NoStore、Session、Cache。
NoStore,将不会缓存Page 对象
Session,将会把Page 对象存储到站点的Session里
Cache,将会把Page 对象存储到站点的Cache里。
二.unloadStoredPage 是否在Page的Unload对象里清除掉建立的Page 对象的Cache或者Session。一般都设置为false。
三.cacheTimeout Cache的过期时间以分钟为单位
四.maxConcurrentPages 同一个页面可以缓存的Page 对象的数量 一般为5
五.maxPagesLimitAlert 是否对达到最大缓存数进行警告 一般为 false
为什么要缓存页面对象,我们将在以后的章节里解释
最后一步,在<System.Web></System.Web>标签的
下级标签 <httpModules> </httpModules>里创建
<add name="MagicAjax" type="MagicAjax.MagicAjaxModule, MagicAjax" />
如果你的<System.Web></System.Web>里没有<httpModules></httpModules>
请复制以下标签到你的<System.Web></System.Web>里
<httpModules>
<add name="MagicAjax" type="MagicAjax.MagicAjaxModule, MagicAjax" />
</httpModules>
以上就是配置的步骤了。
配置完毕以后,你就可以安心地使用MagicAjax了~~
========================================================================
五、MagicAjax使用中遇到的问题及解决办法
if (objQuery != null )
{
sbMsg.Append (“ < script language = javascript > ”);
sbMsg.Append (“SetFocus(”” + Server.HtmlEncode(sid) + “”);”);
sbMsg.Append (“ </ script > ”);
Page.RegisterStartupScript (“setfocus”,sbMsg.ToString ());
六、 结语
例子:
< section name = " magicAjax " type = " MagicAjax.Configuration.MagicAjaxSectionHandler, MagicAjax " />
</ configSections >
< system.web >
...
< httpModules >
< add name = " MagicAjaxModule " type = " MagicAjax.MagicAjaxModule, MagicAjax " />
</ httpModules >
...
</ system.web >
if ( ! Page.IsPostBack)
{
MagicAjax.AjaxCallHelper.SetAjaxCallTimerInterval
}
FillDataView();
// FillDataView();
public void FillDataView()
{
string sql = " select * from mms_type " ;
DataTable db = SQLControl.GetDataTable(sql);
GridView1.DataSource = db;
GridView1.DataBind();
}
总结:
1、直接弹出一个Alert窗体的办法:
using MagicAjax;
MagicAjax.AjaxCallHelper.Write("alert('" + "网际浪子的一个小测试!" + "');");
2、弹出一个确认框的办法:(可以直接用在MagicAjax中的呀!)
this.Button2.Attributes["onclick"]="javascript:return confirm('真的确认添加吗');"
PS:
用户控件使用__doPostBack提交信息和其他的不同
使用__doPostBack提交信息的时候,__doPostBack函数的第一个参数是要提交的按钮id,在用户控件中使用__doPostBack提交信息的时候,这个参数中id的写法要加上用户控件的id。和一般的脚本调用不同,在这里用户控件id和控件id中间不是用“_”和“:”间隔,而是用 “$”间隔。
如提交一个id为linkButton的LinkButton的写法如下:
window.__doPostBack("<%= this.ClientID.ToString()%>$LinkButton1","");