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>
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    SPComm的一点小诀窍 spcomm的问题导致数据丢失 0x11与0x13错误
    关于DELPHI数组,指针,字符串转换的例子!(转)
    SQL常用语法大全
    SQL触发器实例讲解
    Delphi 变体类型(Variant)的介绍(流与变体类型的相互转换、变体类型常用的函数)
    delphi 生成条形码(fastreport 实现)
    delphi 判断字符串有中文
    delphi const
    delphi as
    delphi 字符串常识
  • 原文地址:https://www.cnblogs.com/luyujie/p/3259340.html
Copyright © 2011-2022 走看看