ASP.NET AJAX 中 UpdateProgress 的瑕疵及其解决方法
... 前言
在Web应用程序中,引入AJAX,不仅可以提高用户体验(页面局部刷新),而且可以在一定程度上,降低Web服务器的工作负载和响应时间。
AJAX 使用Javascript,在客户端(浏览器端),通过Http(s)协议,向服务器端 (Web Server)发起请求;服务器根据请求的URI,
完成相应的逻辑操作,尔后将执行的结果通过Http(s)协议,返回给客户端。
客户端对获取的返回结果(TEXT/XML 串),使用Javascript, 在callback 中解析、呈现。
... ASP.NET AJAX 服务器控件
... UpdateProgress
AJAX 服务器控件中, UpdatePanel是一个大玩意,页面请求完成后,你会发现只有处于UpdatePanel 之中的内容才会更新,
而UpdatePanel 之外之物则保持原样。
即便如此,在UpdatePanel完成更新之前,比较友好的方式是,提示用户稍安勿躁,请求正在处理之中。
... UpdateProgress的瑕疵
UpdateProgress 很有用,但也有一点瑕疵。
下面例子中,用户点击"Filter"按钮, 利用Ajax Toolkit 中的ModalPopupExtender,弹出搜索条件窗口;
在弹出窗口中,点击“OK”按钮提交AJAX请求,而此时,我们的进度条却没有在最上层显示,而且常常是躲在弹出窗口下面看不见。
... 解决方法
下面谈谈我的做法:
方法(一)
在与ModelPopupExtender 相关联的Panel里, 加入一份UpdateProgress的Template 拷贝。如下:
$get("<%=divFilteringLoader.ClientID%>").style.display = 'block';
方法(二)
用户点击"OK"时,客户端触发Cancel按钮的点击事件:
$get("<%=btnFilterCancel.ClientID%>").click();
... 总结
问题很简单,解决的方式也很简单。
园子里的朋友们,有遇到相同问题的吗?
还望积极贡献些方法和主意。
Tag标签: AJAX,UpdateProgress
0
0
0
(请您对文章做出评价)
« 上一篇:也谈设计模式,实例票据打印 解析 Decorator
Feedback
相关文档:
理论和实践不一样,理论再好,也要能实践才行。
如果你从来没有写过程序,那么,在写程序之前还是先看看语法之类的基础;如果你写过程序,那么你就可以边写程序边学习。
无论用什么语言写一个网站,其根本都是差不多,无非就是对数据库的操作,如插入、删除、修改和查询。
类并不可怕。类无非就是一些函数和属性,而且 ......
在asp.net 1.1中,对于验证类控件,在使用时,遇到有的不需要验证的控件时,是十分麻烦的,就是说不可能有选择验证某些控件,而在asp.net 2.0中,新增加了validationgroup属性,可以指定验证某些控件,例子如下:
<html>
<body>
<form runat=“server”>
& ......
SiteMapPath 控件包含来自站点地图的导航数据。此数据包括有关网站中的页的信息,如 URL、标题、说明和导航层次结构中的位置。若将导航数据存储在一个地方,则可以更方便地在网站的导航菜单中添加和删除项。
下面的代码示例演示包含在 Web.sitemap 文件中的站点地图数据。 ......
默认情况下,ASP.NET 网站导航使用一个名为 Web.sitemap 的 XML 文件,该文件描述网站的层次结构。但是,您可能要使用多个站点地图文件或站点地图提供程序来描述整个网站的导航结构。
例如,您可以具有引用子站点地图的主站点地图。主站点地图可以是:
<?xml version="1.0" encoding ......