本文是翻译 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):后台的相关属性
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 on 2008-05-20 11:04
陋室 阅读(296)
评论(1) 编辑 收藏 所属分类:
AJAX