ajax浅析---ScriptManager

使用ScriptManager控件

它用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问Web Service,所有需要支持ASP.NET AJAXASP.NET页面上有且只能有一个ScriptManager控件。在ScriptManager控件中我们可以指定需要的脚本库,或者指定通过JS来调用的Web Service,以及调用AuthenticationServiceProfileService,还有页面错误处理等。

主要内容

1.控件概述

2.一个简单的示例

3.客户端脚本模式

4.错误处理

5.Services属性

6.Scripts属性

一.控件概述

ScriptManager控件包括在ASP.NET 2.0 AJAX Extensions中,它用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问Web Service,所有需要支持ASP.NET AJAX的ASP.NET页面上有且只能有一个ScriptManager控件。在ScriptManager控件中我们可以指定需要的脚本库,或者指定通过JS来调用的Web Service,还可以指定页面错误处理等。

使用<asp:ScriptManager/>来定义一个ScriptManager,简单的ScriptManager定义形式:

 1 <asp:ScriptManager ID="ScriptManager1" 
 2 
 3                    runat="server">
 4 
 5       <AuthenticationService Path="" />
 6 
 7       <ProfileService LoadProperties="" Path="" />
 8 
 9       <Scripts>
10 
11         <asp:ScriptReference/>
12 
13       </Scripts>
14 
15       <Services>
16 
17         <asp:ServiceReference />
18 
19       </Services>
20 
21 </asp:ScriptManager>

ScriptManager属性和方法如下:

属性/方法

描述

AllowCustomError

和Web.config中的自定义错误配置区<customErrors>相联系,是否使用它,默认值为true

AsyncPostBackErrorMessage

异步回传发生错误时的自定义提示错误信息,

AsyncPostBackTimeout

异步回传时超时限制,默认值为90,单位为秒

EnablePartialRendering

是否支持页面的局部更新,默认值为True,一般不需要修改

ScriptMode

指定ScriptManager发送到客户端的脚本的模式,有四种模式:Auto,Inherit,Debug,Release,默认值为Auto,后面会仔细说到。

ScriptPath

设置所有的脚本块的根目录,作为全局属性,包括自定义的脚本块或者引用第三方的脚本块。如果在Scripts中的<asp:ScriptReference/>标签中设置了Path属性,它将覆盖该属性。

OnAsyncPostBackError

异步回传发生异常时的服务端处理函数,在这里可以捕获一场信息并作相应的处理。

OnResolveScriptReference

指定ResolveScriptReference事件的服务器端处理函数,在该函数中可以修改某一条脚本的相关信息如路径、版本等。

二.一个简单的示例

这个例子其实是UpdatePanel示例,在页面中加入了日期控件和一个下拉框,根据下拉框选择的不同,日期控件背景变为不同的颜色。示例代码如下:

  1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
  2 
  3  
  4 
  5 <script runat="server">
  6 
  7     void DropDownSelection_Change(Object sender, EventArgs e)
  8 
  9     {
 10 
 11         Calendar1.DayStyle.BackColor =
 12 
 13             System.Drawing.Color.FromName(ColorList.SelectedItem.Value);
 14 
 15     }
 16 
 17 </script>
 18 
 19  
 20 
 21 <html xmlns="http://www.w3.org/1999/xhtml">
 22 
 23 <head id="Head1" runat="server">
 24 
 25     <title>ScriptManager Example</title>
 26 
 27 </head>
 28 
 29 <body>
 30 
 31     <form id="form1" runat="server">
 32 
 33         <div>
 34 
 35             <asp:ScriptManager ID="ScriptManager1" 
 36 
 37                                runat="server">
 38 
 39             </asp:ScriptManager>
 40 
 41             <asp:UpdatePanel ID="UpdatePanel1"
 42 
 43                              runat="server">
 44 
 45                 <ContentTemplate>
 46 
 47                     <asp:Calendar ID="Calendar1" 
 48 
 49                                   ShowTitle="True"
 50 
 51                                   runat="server" />
 52 
 53                     <div>
 54 
 55                         Background:
 56 
 57                         <br />
 58 
 59                         <asp:DropDownList ID="ColorList" 
 60 
 61                                           AutoPostBack="True" 
 62 
 63                                           OnSelectedIndexChanged="DropDownSelection_Change"
 64 
 65                                           runat="server">
 66 
 67                             <asp:ListItem Selected="True" Value="White"> 
 68 
 69                             White </asp:ListItem>
 70 
 71                             <asp:ListItem Value="Silver"> 
 72 
 73                             Silver </asp:ListItem>
 74 
 75                             <asp:ListItem Value="DarkGray"> 
 76 
 77                             Dark Gray </asp:ListItem>
 78 
 79                             <asp:ListItem Value="Khaki"> 
 80 
 81                             Khaki </asp:ListItem>
 82 
 83                             <asp:ListItem Value="DarkKhaki"> D
 84 
 85                             ark Khaki </asp:ListItem>
 86 
 87                         </asp:DropDownList>
 88 
 89                     </div>
 90 
 91                 </ContentTemplate>
 92 
 93             </asp:UpdatePanel>
 94 
 95             <br />
 96 
 97         </div>
 98 
 99     </form>
100 
101 </body>
102 
103 </html>

三.客户端脚本模式

在前面我们提到了ScriptMode属性指定ScriptManager发送到客户端的脚本的模式,它有四种模式:Auto,Inherit,Debug,Release,默认值为Auto。

1.Auto:它会根据Web站点的Web.config配置文件来决定使用哪一种模式,只有当配置文件中retail属性设置为false:

<system.web>

  <deployment retail="false" />

</system.web>

或者页面中的Debug指令设为true的时候会使用Debug版本,其他的情况都会使用Release版本。

<%@ Page Language="C#" Debug="true"

AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 

四.错误处理

在页面回传时如果发生了异常AsyncPostBackError事件将被触发,错误信息的处理依赖于AllowCustomErrors属性、AsyncPostBackErrorMessage属性和Web.config中的<customErrors>配置区。

五.Services属性

Services用来管理对WebService的调用,通过<asp:ServiceReference>标签可以在Services中注册一个WebService,在运行时ScriptManager将为每一个ServiceReference对象生成一个客户端代理,<asp:ServiceReference>标签一个很重要的属性是Path,用来指定WebService的路径,如下所示:

<asp:ScriptManager ID="SM1" runat="server">

    <Services>

        <asp:ServiceReference Path="Service.asmx"/>

    </Services>

</asp:ScriptManager>

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

 

 

 

 

posted @ 2013-08-15 11:44  luyujie_may  阅读(294)  评论(0编辑  收藏  举报