当 DynamicLayout 属性设置为 true 时,UpdateProgress 控件初始时不占用页面的空间,页面在需要时动态的显示 UpdateProgress 控件。为支持动态显示,控件输出的
元素的 display 样式属性初始被设置为 none。
当 DynamicLayout 属性设置为 false 时,UpdateProgress 控件将在页面显示时占用空间,即使控件不显示。在这种情况下,控件的
元素的 displey 样式属性被设置为 block ,而 visibility 初始设置为 hidden 。
3.6 在页面中放置 UpdateProgress 控件
可以将 UpdateProgress 控件放在 UpdatePanel 控件的外部或内部。UpdateProgress 控件随着它关联的 UpdatePanel 控件更新为一个异步回发的返回而显示,即使 UpdateProgress 控件被包含在另一个 UpdatePanel 控件中也一样。
如果 UpdatePanel 控件在另一个更新面板内部,源自子面板内部的回发将导致关联子面板的 UpdateProgress 控件的显示。同时,关联父面板的所有 UpdateProgress 控件也将显示。如果回发源自父面板的直接子控件,则仅有与父面板相关联的 UpdateProgress 控件显示。这与回发如何被触发时一样的逻辑。
3.7 指定 UpdateProgress 控件显示的时机
可以使用 Javascript 的 PageRequestManager 类的 beginRequest 和 endRequesst 事件来编程控制 UpdateProgress 控件显示的时机。在beginRequest 事件处理程序中,显示表示 UpdateProgress 控件的 DOM 元素,在 endRequest 的事件处理程序中隐藏元素。
在下列情形下必须提供客户端脚本来显示或隐藏 UpdateProgress 控件:
- 在源自一个注册为更新面板的异步回发触发器的回发期间,而它并没有与 UpdateProgress 控件关联。
- 在源自以编程的方式使用 ScriptManager 控件的 RegisterAsyncPostBackControl(Control) 方法注册为异步回发控件的控件回发期间,在这种情况下,UpdateProgress 控件无法自动确定异步回发已被触发。
3.8 其他属性
DisplayAfter :
以毫秒为单位指定 UpdateProress 控件显示的延迟时间。
4 总结
至此,ASP.NET AJAX Extensions 1.0 中所包含的几个服务器控件已都学习完毕,使用这些服务器控件,我们就可以开发出具有基本的 AJAX 特性的 Web 应用程序,以为用户提供更好的客户端体验。