A. Atlas UpdatePanel 简要介绍
UpdatePanel 是ASP.NET Atlas 中很重要的一个控件。它把传统的ASP.NET 程序与最新的Web 2.0 AJAX
无缝的连接在一起。如果你已经有一些基于ASP.NET 的网站,UpdatePanel 可以让你通过很小的修改轻松
的实现AJAX 。如果你并不很熟悉AJAX 相关的技术比如JavaScript/DOM 等,UpdatePanel 更是可以让
你不用书写一行客户端脚本而实现酷酷的AJAX 应用。所需要的就是把需要动态更新的部分放置于一个
UpdatePanel 中,这一点与MagicAjax Framework 有着异曲同工之妙。
使用UpdatePanel 很简单,只需要如下几个步骤:
用ASP.NET 实现你的设计,此刻你并不需要考虑任何有关AJAX 的问题,就像普通的ASP.NET 程序一样。
在页面上添加一个ScriptManager 对象,并设定属性EnablePartialUpdates=true
将你希望动态更新的部分用UpdatePanel 包围起来
为你添加的UpdatePanel 设定Event Trigger
只要这些步骤就够了,不需要考虑XMLHTTPRequest 或者ActiveX 对象,也不需要书写客户端的脚本或者
考虑如何与服务器通信,所有的细节,Atlas 已经为你做好了。
Atlas UpdatePanel 的实现也很简单:浏览器如同普通PostBack 一样Post 回服务器,服务器处理后再次
发送给浏览器,这个过程就和传统的页面模型一样。但到达客户端时ScriptManager 只更新位于
UpdatePanel 中的内容和ViewState。
使用UpdatePanel 中应该注意的几个问题:
必须指定ScriptManager 中的属性EnablePartialUpdates=true ,这样ScriptManager 才会将普通的
PostBack 转化为对服务器的异步调用,也就是AJAX 的方法。否则页面只会与传统的ASP.NET 一样刷新。
其次,UpdatePanel 提供两种引发异步PostBack 的Trigger:
ControlValueTrigger:当某个控件的某个指定的属性变化时更新。例如:ControlID="dropDownList1"
PropertyName="SelectedValue"
ControlEventTrigger:当某个控件发出指定事件时更新。例如:ControlID="button1"
EventName="Click"
最后,每个UpdatePanel 都有两种更新的方式:
Always:每次AJAX PostBack 或是普通PostBack 的时候都会更新该Panel 的内容
.Conditional:只有满足如下某一条件时才更新该Panel 的内容:
1. 当Panel 中的某个控件引发了PostBack 时
2. 当Panel 所指定的某个Trigger 被引发时