nini

学然后知不足,教然后知困
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

4.2 执行异步请求时显示通知

Posted on 2007-04-01 20:54  nini  阅读(1005)  评论(0编辑  收藏  举报

 

 

导论和目标

1. 安装ASP.NET AJAX v1.0

2. 使用Visual Studio 2005准备开发ASP.NET AJAX应用

3. 创建一个ASP.NET AJAX Futures 的启动模型 

4. 使用AJAX扩展xBikes解决方案 

4.1 添加ScriptManager and UpdatePanel

4.2 执行异步请求时显示通知 

4.3 使用AutoCompleteExtender异步调用Web service 

4.4 使用AJAX Control Toolkit中的例子 

4.5 拖拽功能

4.6 在AJAX Framework中使用ASP.NET’s Profile服务 

4.7 创建你自己的ASP.NET AJAX 控件扩展 


 

介绍:由于Web浏览器在UpdatePanel执行异步调用的时候没有提供任何的反馈。所以我们需要告诉用户应用程序发生了什么。如果用户在提交一个异步调用的时候没有得到反馈,他会继续等待应用程序的响应并疑惑应用程序是否已经发送了数据。ASP.NET AJAX中的UpdateProgress控件正好可以解决这个问题。

测试: 运行解决方案并浏览Shopping页。使用Add to cart功能,在购物车中放入产品并转到Shopping Basket.在Product availability区域,点击Update。这个请求模仿了一个存储管理系统的执行。整个页面保持静止并直到可用的数据返回再刷新整个页面。

让我们看看整个异步调用的过程。

步骤4.2a: 打开Basket.aspx进行编辑。在页面上插入一个UpdatePanel控件。将包括超级链接Proceed to Checkout在内的所有控件放在UpdatePanel内。

图4.2a: 插入UpdatePanel控件的Basket.aspx页面。

测试:运行解决方案并浏览页面Basket.aspx。确定在你的购物车里有几个物品。点击Update。首先,页面并没有任何的反应,等Shopping Basket里的物品都更新完后,页面显示最后的结果。而这正是我们要竭力避免的。现在,关闭浏览器。

步骤4.2b: 在Visual Studio中,打开MasterPage.master并且在表格的右上角的空白区域增加一个UpdateProgress控件。在里面放置一个图片控件并设置下列属性和值:

ImageUrl

~/images/wait.gif

在图片中输入并显示文本"updating… please wait."

图4.2b: MasterPage.master中的一个UpdateProgress控件

打开UpdateProgress控件的属性页。正如你所看到的,在Behaviour(行为)下的DisplayAfter属性值是500。这表明该控件不会被触发直到异步调用的请求时间超过了500毫秒(1/2秒)。

图4.2c:UpdateProgress1控件中的DisplayAfter属性

测试: 运行解决方案并浏览Shopping页。使用Add to cart功能,在购物车中放置几个产品并浏览Shopping Basket.在Product availability区域,点击Update,你会看到,UpdateProgress控件显示了页面在等待异步请求的响应。现在,关闭浏览器。