zoukankan      html  css  js  c++  java
  • 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>
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    Asp.net 动态添加Meta标签
    【转】在SharePoint Server 2010中更改“我的网站”
    SPQuery DateTime 类型查询
    Asp.net Web Application 打开 SharePoint 2010 Site 错误 The Web application at could not be found
    How To Create SharePoint 2010 Site Collection In Its Own DB
    C# 文件打印
    面试题 java集合
    《深入理解Java虚拟机》(六)堆内存使用分析,垃圾收集器 GC 日志解读
    《深入理解Java虚拟机》(五)JVM调优
    《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具
  • 原文地址:https://www.cnblogs.com/luyujie/p/3259340.html
Copyright © 2011-2022 走看看