基于Ajax无刷新实时loading页面

Anthem.Net真是个好东西,不但开源而且使用简单,可以便捷地创建各种Ajax应用。
需要的代码量很少,首先在控件的服务器事件中写入逻辑,然后添加一句控件ID.UpdateAfterCallBack = true;就可以自动回调更新这个控件了。还对有AutoPostBack属性的控件提供AutoCallBack属性。有了这两个属性,于是控件具有了无刷新更新和传递数据的功能。
Anthem.Net还提供了Anthem.Manager.AddScriptForClientSideEval()方法,可以随时随地在服务器端执行javascript函数,这个方法的作用是巨大的。
有了利器,实现无刷新等待页面便容易起来。
在前端页面添加loading图象或表格
<DIV id="pnlAjaxLoad" style="DISPLAY: none">
<DIV id="Msg1"><FONT face="Verdana, Arial, Helvetica" color="#ea9b02" size="2"><B>正在加载</B></FONT></DIV>
</DIV >

接着在javascript文件中写入显示和隐藏loading条的函数,页面要包含这个文件
function HideAjAxLoading()//隐藏窗体
{
document.getElementById(
"pnlAjaxLoad").style.display='none';
}
function ShowAjAxLoading()//显示窗体
{
var elem = document.getElementById("pnlAjaxLoad");
if(elem)
{
elem.style.display 
= 'block';
elem.style.visibility 
= 'visible';
}}

最后在事件中加入以下代码,按每个项目不同的需求,可以是PageLoad事件,Button Click事件,Index Changed事件任何事件。
btnLast.Attributes.Add("onclick""ShowAjAxLoading();");
dropChangePage.Attributes.Add(
"onChange""ShowAjAxLoading();");

//注意必须添加控件的事件触发时执行的js函数
public void PagerButtonClick(object sender, EventArgs e)
{
//逻辑处理代码
Anthem.Manager.AddScriptForClientSideEval("HideAjAxLoading();");
}
到这里就大功告成,效果是很完美的 Cheers!

使用Anthem.Net出现的相关问题也有一些,由于都是基于js的操作,因此在服务器端的很多方法不能起作用,如常见的 Response.Write。如果在Page页面中声明了全局变量,那么在回调的时候全局变量回赋值为默认值,造成数据的丢失。但页面上的控件可以通过 ViewStates保存自己的信息。

Anthem.Net还提供了额外的实用控件如:AutoSuggestTextBox,EditLabel,ProgressBar,Calendar,YuiAutoComplete等,为了方便开发者使用,更提供了大量的实例代码和上网Demo,这是难能可贵的,不论是初学者还是有经验的开发人员都能快速上手。

总之,使用Anthem.Net进行Ajax开发是明智的选择~
国内外相关站点:http://anthem-dot-net.sourceforge.net/ http://www.cnblogs.com/RChen/category/69922.html

posted @ 2007-04-15 14:03 jecray 阅读(762) 评论(0) 编辑 收藏