微软AJAX 教学系列第一讲:ScriptManager控件

     本文是翻译 http://www.asp.net/上推出了最新的AJAX系列教程.由于本人第一次进行翻译,有翻译不准,不正确的地方,望大家批评指正 .

                                                                                                                                                                                 笑Q
    在上一篇文章中.我们通过简单小例子介绍了页面的局部刷新.在这篇文章中.我们介绍下MicroSoft AJAX最重要控件之一的ScriptMananger的相关属性和方法
      1.客户端的相关属性

 属性         类型 描述
AllowCustomeErrorsRedirect     Bool     定义是否使用webconfig中自定义的错误处理
AsyncPostBackErrorMessage String 定义当error发生的时候在客户端呈现的错误信息
AsyncPostBackTimeOut Int32 获取或设置一个值,该值指示在未收到响应时异步回发超时前的时间(以秒为单位)。
EnableScriptGlobalization Bool 获取或设置一个值,该值指示 ScriptManager 控件是否呈现支持分析区域性特定的信息并设置其格式的脚本。
EnableScriptLocalization Bool 获取或设置一个值,该值指示 ScriptManager 控件是否呈现脚本文件的本地化版本。
ScriptLoadTimeout Int32 定义装在客户端脚本的最大时间.
ScriptMode Enum (Auto, Debug, Release, Inherit) 获取或设置一个值,以指定是呈现客户端脚本库的调试版本还是发布版本。
ScriptPath String 获取或设置位置的根路径,该位置用来建立指向 ASP.NET AJAX 和自定义脚本文件的路径。
    2):后台的相关属性
 属性         类型 描述
AuthenticationService AuthenticationService-Manager 获取与当前 ScriptManager 实例关联的 AuthenticationServiceManager 对象。
IsDebuggingEnabled Bool 获取一个指示是否呈现客户端脚本库的调试版本的值
IsInAsyncPostback Bool 获取一个指示是否在部分呈现模式下执行当前回发的值。
ProfileService ProfileServiceManager 获取与当前 ScriptManager 实例关联的 ProfileServiceManager 对象。
Scripts Collection<ScriptReference> 获取一个包含 ScriptReference 对象(每个对象代表一个呈现给客户端的脚本文件)的 ScriptReferenceCollection 对象。
Services Collection<ServiceReference> 获取一个 ServiceReferenceCollection 对象,该对象包含 ASP.NET 在客户端上针对 AJAX 功能而公开的每个 Web 服务的 ServiceReference 对象。
SupportsPartialRendering Bool 获取一个指示客户端是否支持部分页面呈现的值。
    3)scriptManager的相关方法
Name Type 描述
SetFocus(string) Void 请求结束时,将浏览器焦点设置为指定控件。
    4)ScriptManager的子项
标签 描述
<AuthenticationService> 提供 ASP.NET authentication service.的详细实例
<ProfileService> 提供 ASP.NET profiling service.的详细实例
<Scripts> 提供额外的Script脚本引用
<asp:ScriptReference> 指定特别的Script脚本引用
<Service> 获取一个 ServiceReferenceCollection 对象,该对象包含 ASP.NET 在客户端上针对 AJAX 功能而公开的每个 Web 服务的 ServiceReference 对象。
<asp:ServiceReference>
    ScriptManager控件是ASP.NET AJAX Extensions的核心.它提供了访问脚本库(包括其他扩展的脚本类型系统)的访问能力.它支持网页的部分呈现功能,同时也提供了对其他ASP.NET WebService(像Authentication ,Profiling,其他WebServices)的支持. 另外.ScriptManager控件支持就客户端脚本全球化和本地化的支持.
      提供可以选择和追加的脚本
     尽管ASP.NET 2.0 AJAX Extensions 在调试和发行的版本中包含整个脚本代码. 开发者可以像注册其他的脚本一样自由的设置自定义的脚本文件. 
    为了重载默认的内置脚本.你可以在ScriptManager类中通过注册 ResolveScriptReference 事件来实现.当这个方法被调用的时候.事件处理器就会自动的改变Script的路径,ScriptManager 就会发送不同的或者你自定义的脚本的副本到客户端/
    UpdatePanels的自定义错误处理
     尽管更新是由UpdatePanel 控件触发的.但是错误的处理和自定义错误信息还是通过ScriptManager控件来处理的.这个是通过页面上的AsyncPostBackError来呈现异常处理逻辑的.你可以通过AsyncPostBackErrorMessage属性来设置显示的错误信息.
      当然你可以通过客户端的自定义错误处理机制.
     例如:Listing 5: Client-side script to display custom errors
<script type=”text/javascript”>
    <!-- 
    Sys.WebForms.PageRequestManager.getInstance().add_EndRequest( Request_End);
    
function
 Request_End(sender, args) 
        

            
if (args.get_error() !=
 undefined) 
                

                    
var errorMessage =
 “”; 
                    
if (args.get_response().get_statusCode() == “200
”)
                    
{
                        errorMessage 
=
 args.get_error().message; 
                    }
 
                    
else
 
                    

                            
// the server wasn’t the problem errorMessage = “An unknown error occurred”; 

                    }
 
                    
// do something with the errorMessage here. 

                    // now make sure the system knows we handled the error.
                    args.set_errorHandled(true); 
                }
 
        }
 
        
//--> 

</script>
    方法相当简单.上面的script脚本注册了在异步调用结束时的回调.它会检查是否有错误发生.如果有,获取错误的详细信息并通知runtime错误已经被自定义脚本处理.

posted @ 2008-05-20 11:04  陋室  阅读(1326)  评论(1编辑  收藏  举报