论坛登陆 注册 教程 笑话 影视 投稿
首页 | 页界资讯 | 网络应用 | 软件应用 | 组网技术 | 网络原理 | 聊天通讯 | 网管知识 | 帮助
笑话 | 操作系统 | 注 册 表 | 编程开发 | 数 据 库 | 媒体动画 | 网页设计 | 图形图象 | 地图
论坛 | 网络安全 | 安全防范 | 服 务 器 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
影院 | 教育频道 | 特色专题 | 精文荟萃 | 注 册 码 | 论坛社区 | 网站地图 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>编程开发>>net专区>>正文

用ASP.NET 2.0实现AJAX风格的Web开发

www.xker.com 作者:朱先忠编译 来源:天极开发 加入日期:2006-4-13 10:49:56

【问题提问、论坛交流】

  为了帮助更好地理解ASP.NET 2.0的回调机制,发行包中包括了一个简单的进度条控件,它依靠回调来决定服务器确定的一项任务的状态下面的列表1显示了该ProgressBar控件的代码为了支持客户端回调函数,这个控件实现了ICallbackEventHandler接口为了演示之目的,RaiseCallbackEvent方法实现简单地查找存储在会话中的一个计数器,每次给计数器加1,并且把新值返回到客户端最后,列表2显示了负责初始化该回调函数的JavaScript代码它使用了this.Page.ClientScript.GetCallbackEventReference来获得一个到需要初始化回调的函数的安全引用

  列表1:ProgressBar.cs

public class ProgressBar : System.Web.UI.Control, System.Web.UI.ICallbackEventHandler{
private int PercentCompleted{
 get
 {
  if System.Web.HttpContext.Current.Session["PercentComplete"] == null) {
   System.Web.HttpContext.Current.Session["PercentComplete"] = 1;
 } 
 else {
  System.Web.HttpContext.Current.Session["PercentComplete"] =(int)System.Web.HttpContext.Current.Session["PercentComplete"] + 1;
 }
 return (int)System.Web.HttpContext.Current.Session["PercentComplete"];
}
set
{
 System.Web.HttpContext.Current.Session["PercentComplete"] = 1;
}
}
public string RaiseCallbackEvent(string eventArguments) {
 int percent = this.PercentCompleted;
 if (percent > 100)
 {
  this.PercentCompleted = 1;
  return "completed";
 }
 else
 {
  return percent.ToString() + "%";
 }
}
protected override void OnPreRender(EventArgs e) {
 this.Page.ClientScript.RegisterClientScriptBlock(typeof(ProgressBar),
"ProgressBar", this.GetClientSideScript(), true);
 base.OnPreRender(e);
}
protected override void Render(HtmlTextWriter writer) {
 System.Text.StringBuilder sb = new StringBuilder();
 sb.Append(@"<table id=""ProgressBarContainer"" bgcolor=""LightSteelBlue""
 border=""0"" width=""400"" style=""DISPLAY:none; POSITION: absolute;
 Z-INDEX: 10"">");
 sb.Append(@"<tr><td colspan=""3"" style=""padding:3px 2px 2px 10px"">");
 sb.Append(@"<font face=""Verdana, Arial, Helvetica, sans-serif"" size=""2"">");
 sb.Append(@"<span id=""ProgressBarLabel"">Uploading...</span>");
 sb.Append(@"</font></td></tr><tr><td>");
 sb.Append(@"<font size=""1""> </font></td><td bgcolor=""#999999""
 width=""100%"">");
 sb.Append(@"<table id=""ProgressBar"" border=""0"" width=""0""
 cellspacing=""0"">");
 sb.Append(@"<tr><td style=""background-image:url(progressbar.gif)"">
 <font size=""1""> </font></td>");
 sb.Append(@"</tr></table></td>");
 sb.Append(@"<td><font size=""1""> </font></td></tr>");
 sb.Append(@"<tr height=""5px""><td colspan=""3""></td></tr>");
 sb.Append(@"</table>");
 writer.Write(sb.ToString());
 base.Render(writer);
}
private string GetClientSideScript() {
 System.Reflection.Assembly dll =
 System.Reflection.Assembly.GetExecutingAssembly();
 StreamReader reader;
 reader = new StreamReader(dll.GetManifestResourceStream("ProgressBar.txt"));
 StringBuilder js = new StringBuilder(reader.ReadToEnd());
 string fp = this.Page.ClientScript.GetCallbackEventReference(this, "", "UpdateProgressBar", "");
 js.Replace("##InitiateCallBack##", fp);
 reader.Close();
 return js.ToString();
}
}

  列表2:ProgressBar.js

本新闻共5页,当前在第3页  1  2  3  4  5  

编辑:xker.com

上一篇:ASP.NET 2.0中轻松实现网站换肤
下一篇:在ASP.NET 2.0 中实现文件上载
关闭窗口】【技术交流】【收藏此页
相关文章
·在ASP.NET 2.0 中实现文件上载·ASP.NET 2.0中轻松实现网站换肤·ASP.NET教程
·用ASP.NET制作计数器·五种常见的ASP.NET应用程序安全缺陷·ASP.NET的安全漏洞
·进行ASP.NET Web安全验证方法·利用ASP.NET 的内置功能抵御 Web 攻击·ASP.NET中如何防范SQL注入式攻击
·在ASP.NET中访问SQL Server·用ObjectSpaces重建IBuySpy的数据访问·ASP.NET:访问Excel 电子表格
·用ASP.NET在同一网页中显示主从关系表·ASP.NET+MySQL:强势组合·asp.net 2.0中的URL重写以及urlMappi
推荐文章 最新文章 热门文章
·用ASP.NET 2.0实现AJAX风格的Web开发
·Windows常见文件修复技巧
·Java 理论与实践: 良好的内务处理实践
·红黑过招 WinRAR破解“磁盘加密王”
·Windows组策略为共享目录安全保驾护航
·总结:内存卡故障解决小秘技
·Java学习之路:不走弯路,就是捷径
·用注册表对系统进行全方位维护和管理
·最后防线 WinXP八种安全模式揭密
·原创:一个c++写的发牌程序
·借用WINS服务 让不同子网也能直接互通
·细处下手 尽力挖掘IIS6.0管理网站的新
·解决方案:Oracl数据库中大数据的备份
·WebServices调用存储过程
·快速排除广域网线路时通时断故障
·Foxmail 6.0Beta3发布
·Win98 7月终止支持 微软提醒用户升级
·Photoshop逼真的制作绿叶水珠效果
·建立安全的SQL SERVER启动账号
·绝处逢生:Win2003下的权限提升
·在ASP.NET 2.0 中实现文件上载
·快马加鞭 正确优化系统提高闪存写入速
·用ASP.NET 2.0实现AJAX风格的Web开发
·做自己的救世主 操作系统安全保卫战
·Windows常见文件修复技巧
·Java 理论与实践: 良好的内务处理实践
·免费给你的QQ个人信息面板加上彩色背
·红黑过招 WinRAR破解“磁盘加密王”
·隐藏指定Excel行 不让它们被打印出来
·Word入门动画教程96:插入题注
·个人简历表格
·免费代理IP(每日更新)
·QQ密码丢失后能做的事情:快速找回密码
·QQ收费头像免费使用的方法 
·Norton AntiVirus 2006 注册码(激活
·系统优化 专题
·WinRAR 3.51 注册码
·豪杰超级解霸V9.1正版注册码
·找回QQ密码的注意事项 
·史上最强QQ个人档案资料欣赏
·Ajax技术开发指南
·QQ空间皮肤代码
·最经典的黑客入门教材
·梦幻西游科举考试答案最新版
·求职简历封皮
评论

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446
本页浏览次数: