请单击以进行评分并提供反馈
MSDN
MSDN Library
.NET 开发
.NET Framework

  开启低带宽视图
.NET Framework 类库
ScriptManager 类

更新:2007 年 11 月

为 Web 和应用程序服务管理 ASP.NET AJAX 脚本库和脚本文件、部分页面呈现以及客户端代理类生成。

命名空间:  System.Web.UI
程序集:  System.Web.Extensions(在 System.Web.Extensions.dll 中)

Visual Basic(声明)
<AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
Public Class ScriptManager _
    Inherits Control _
    Implements IPostBackDataHandler, IScriptManager
Visual Basic (用法)
Dim instance As ScriptManager
C#
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class ScriptManager : Control, 
    IPostBackDataHandler, IScriptManager
Visual C++
[AspNetHostingPermissionAttribute(SecurityAction::InheritanceDemand, Level = AspNetHostingPermissionLevel::Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction::LinkDemand, Level = AspNetHostingPermissionLevel::Minimal)]
public ref class ScriptManager : public Control, 
    IPostBackDataHandler, IScriptManager
J#
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public class ScriptManager extends Control implements IPostBackDataHandler, 
    IScriptManager
JScript
public class ScriptManager extends Control implements IPostBackDataHandler, IScriptManager
ASP.NET
<asp:ScriptManager />

ScriptManager 控件是 ASP.NET 中 AJAX 功能的中心。该控件可管理一个页面上的所有 ASP.NET AJAX 资源。其中包括将 Microsoft AJAX Library 脚本下载到浏览器和协调通过使用 UpdatePanel 控件启用的部分页面更新。此外,通过 ScriptManager 控件,您还能执行以下操作:

  • 注册与部分页面更新兼容的脚本。为了管理您的脚本与核心库之间的依赖项,将在加载 Microsoft AJAX Library 脚本之后加载您注册的所有脚本。

  • 指定是发布还是调试发送到浏览器的脚本。

  • 通过向 ScriptManager 控件注册 Web 服务,提供从脚本访问 Web 服务方法的权限。

  • 通过向 ScriptManager 控件注册 ASP.NET 身份验证、角色和配置文件应用程序服务,提供从客户端脚本访问这些服务的权限。

  • 在浏览器中以区域性特定的形式显示 ECMAScript (JavaScript) 的 DateNumberString 函数。

  • 使用 ScriptReference 控件的 ResourceUICultures 属性来访问嵌入式脚本文件或独立脚本文件的本地化资源。

  • ScriptManager 控件注册可实现 IExtenderControlIScriptControl 接口的服务器控件,以便呈现客户端组件和行为所需的脚本。

部分页面呈现

ASP.NET 页面支持部分页面呈现的能力受到以下因素的控制:

可以在发生页面的 Init 事件期间或之前,在运行时重写 EnablePartialRendering 属性的值。如果试图在发生页面的 Init 事件后更改此属性,则会引发 InvalidOperationException 异常。

当部分页面呈现受支持时,ScriptManager 控件会呈现脚本以启用异步回发和部分页面更新。可使用 UpdatePanel 控件来指定要更新的页面区域。ScriptManager 控件会处理异步回发,并且只刷新必须要更新的页面区域。有关部分页面呈现的更多信息,请参见部分页呈现概述。有关导致更新的情形的更多信息,请参见 UpdatePanel 控件概述

将 ScriptManager 控件与母版页、用户控件及其他子组件一起使用

一个页面在其层次结构中只能包含一个 ScriptManager 控件。若要在父页面已具有 ScriptManager 控件时为嵌套页面、用户控件或组件注册服务和脚本,请使用 ScriptManagerProxy 控件。有关更多信息,请参见将 ASP.NET UpdatePanel 控件用于母版页

脚本管理和注册概述

通过 ScriptManager 控件可注册随后将作为页面一部分呈现的脚本。ScriptManager 控件注册方法可以细分为以下三种类别:

  • 保证维护 Microsoft AJAX Library 上脚本依赖项的注册方法。

  • 不依赖 Microsoft AJAX Library 但与 UpdatePanel 控件兼容的注册方法。

  • 支持与 UpdatePanel 控件协作的注册方法。

有关如何在 ASP.NET 中创建和使用 AJAX 脚本的更多信息,请参见使用 Microsoft AJAX Library 创建自定义客户端脚本

注册依赖 Microsoft AJAX 库的脚本

可以使用下列方法,以保证维护 Microsoft AJAX Library 上所有依赖项的方式注册脚本文件。 

方法

定义

RegisterScriptControl<(Of <(TScriptControl>)>)

注册可实现用来定义 Sys.Component 客户端对象的 IScriptControl 接口的服务器控件。ScriptManager 控件呈现支持该客户端对象的脚本。

RegisterExtenderControl<(Of <(TExtenderControl>)>)

注册可实现用来定义 Sys.UI.Behavior 客户端对象的 IExtenderControl 接口的服务器控件。ScriptManager 控件呈现支持该客户端对象的脚本。

注册部分页面更新兼容脚本

可以使用下列方法注册不依赖 Microsoft AJAX Library 但与 UpdatePanel 控件兼容的脚本文件。这些方法与 ClientScriptManager 控件的类似方法相对应。如果为便于在 UpdatePanel 控件中使用而呈现脚本,则应确保调用 ScriptManager 控件的方法。

方法

定义

RegisterArrayDeclaration

在 JavaScript 数组中添加值。如果该数组不存在,则创建它。

RegisterClientScriptBlock

在页面的 <form> 开始标记之后呈现一个 script 元素。该脚本被指定为字符串参数。

RegisterClientScriptInclude

在页面的 <form> 开始标记之后呈现一个 script 元素。通过将 src 属性设置为指向脚本文件的 URL 来指定脚本内容。

RegisterClientScriptResource

在页面的 <form> 开始标记之后呈现一个 script 元素。脚本内容是使用程序集中的资源名称指定的。通过调用从程序集中检索命名脚本的 HTTP 处理程序,来使用 URL 自动填充 src 属性。

RegisterExpandoAttribute

在标记中为指定控件呈现一个自定义名称/值属性对(一个 expando)。

RegisterHiddenField

呈现隐藏字段。

RegisterOnSubmitStatement

注册为响应 form 元素的 submit 事件而执行的脚本。onSubmit 属性引用指定脚本。

RegisterStartupScript

在页面的 </form> 结束标记之前呈现启动脚本块。要呈现的脚本被指定为字符串参数。

在注册方法时,可为该脚本指定类型/键对。如果已注册了一个包含相同类型/键对的脚本,则不会注册新的脚本。同样,如果所注册脚本的类型/资源名称对已存在,则不会再添加引用该资源的 script 元素。如果注册一个以前注册的属性的 expando 属性,则会引发异常。允许重复注册数组值。

在调用 RegisterClientScriptIncludeRegisterClientScriptResource 方法时,应避免注册执行内联函数的脚本。相反,应注册包含函数定义(如事件处理程序)或应用程序的自定义类定义的脚本。

UpdatePanel 控件的注册方法

在使用 UpdatePanel 控件时,可使用以下方法来自定义部分页面更新。

方法

定义

RegisterAsyncPostBackControl

将控件注册为异步回发的触发器。

RegisterDataItem

在部分页面呈现期间将自定义数据发送到控件。

RegisterDispose

UpdatePanel 控件内的某个控件注册一个 dispose 脚本。在更新或删除 UpdatePanel 控件时会执行该脚本。该释放方法用于作为 Microsoft AJAX Library 的一部分且必须在不再使用组件时释放资源的客户端组件。

RegisterPostBackControl

将控件注册为完全回发的触发器。该方法用于 UpdatePanel 控件内以其他方式执行异步回发的控件。

Web 服务引用

通过创建一个 ServiceReference 对象,然后将其添加到 ScriptManager 控件的 Services 集合中,可以注册一个要从客户端脚本调用的 Web 服务。ASP.NET 可为 Services 集合中的每个 ServiceReference 对象生成一个客户端代理对象。可通过编程方式将 ServiceReference 对象添加到 Services 集合中,以便在运行时注册 Web 服务。

有关如何通过脚本访问 Web 服务的更多信息,请参见向客户端脚本公开 Web 服务从客户端脚本调用 Web 服务

本地化

ScriptManager 控件可在呈现页面中生成指向适当的本地化脚本文件(嵌入程序集中的脚本文件或独立脚本文件)的引用。

在将 EnableScriptLocalization 属性设置为 true 时,ScriptManager 控件会检索当前区域中诸如本地化字符串这样的本地化资源(如果存在)。ScriptManager 控件可为使用本地化资源提供下列功能:

  • 嵌入到程序集中的脚本文件ScriptManager 控件可确定将哪个区域性特定的或回退区域性脚本文件发送到浏览器。为此,它会使用区域性特定的 NeutralResourcesLanguageAttribute 程序集属性、打包在程序集中的资源以及浏览器的 UI 区域性(如果有)。

  • 独立脚本文件ScriptManager 控件可使用 ScriptReference 对象的 ResourceUICultures 属性来定义受支持的 UI 区域性的列表。

  • 在调试模式中ScriptManager 控件试图呈现包含调试信息的区域性特定的脚本文件。例如,如果页面处于调试模式且当前区域性设置为 en-MX,则该控件会呈现一个其名称如 scriptname.en-MX.debug.js 这样的脚本文件(如果该文件存在)。如果该文件不存在,则呈现适当回退区域性的调试文件。

有关如何本地化资源的更多信息,请参见组件库资源本地化概述

错误处理

如果在异步回发期间出现页面错误,则会引发 AsyncPostBackError 事件。以何种方式将服务器上的错误发送到客户端取决于 AllowCustomErrorsRedirect 属性、AsyncPostBackErrorMessage 属性以及 Web.config 文件的自定义错误部分。有关更多信息,请参见 自定义 ASP.NET UpdatePanel 控件的错误处理

TopicLocation
ScriptManager 控件概述在 Visual Studio 中生成 ASP .NET Web 应用程序
UpdatePanel 控件概述在 Visual Studio 中生成 ASP .NET Web 应用程序

下面的示例显示使用 ScriptManager 控件的不同情形。

启用部分页面更新

下面的示例显示如何使用 ScriptManager 控件来启用部分页面更新。在此示例中,CalendarDropDownList 控件位于 UpdatePanel 控件内部。默认情况下,UpdateMode 属性的值为 Always,而 ChildrenAsTriggers 属性的值为 true。因此,面板的子控件会导致异步回发。

Visual Basic
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Sub DropDownSelection_Change(ByVal Sender As Object, ByVal E As EventArgs)
        Calendar1.DayStyle.BackColor = _
        System.Drawing.Color.FromName(ColorList.SelectedItem.Value)
    End Sub

    Protected Sub Calendar1_SelectionChanged(ByVal Sender As Object, ByVal E As EventArgs)
        SelectedDate.Text = Calendar1.SelectedDate.ToString()
    End Sub

</script>

<html >
<head id="Head1" runat="server">
    <title>UpdatePanel Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" 
                               runat="server" />
            <asp:UpdatePanel ID="UpdatePanel1"
                             runat="server">
                <ContentTemplate>
                    <asp:Calendar ID="Calendar1" 
                                  ShowTitle="True"
                                  OnSelectionChanged="Calendar1_SelectionChanged"
                                  runat="server" />
                    <div>
                        Background:
                        <br />
                        <asp:DropDownList ID="ColorList" 
                                          AutoPostBack="True" 
                                          OnSelectedIndexChanged="DropDownSelection_Change"
                                          runat="server">
                            <asp:ListItem Selected="True" Value="White"> 
                            White </asp:ListItem>
                            <asp:ListItem Value="Silver"> 
                            Silver </asp:ListItem>
                            <asp:ListItem Value="DarkGray"> 
                            Dark Gray </asp:ListItem>
                            <asp:ListItem Value="Khaki"> 
                            Khaki </asp:ListItem>
                            <asp:ListItem Value="DarkKhaki"> D
                            ark Khaki </asp:ListItem>
                        </asp:DropDownList>
                    </div>
                    <br />
                    Selected date:
                    <asp:Label ID="SelectedDate" 
                               runat="server">None.</asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
            <br />
        </div>
    </form>
</body>
</html>

C#
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    void DropDownSelection_Change(Object sender, EventArgs e)
    {
        Calendar1.DayStyle.BackColor =
            System.Drawing.Color.FromName(ColorList.SelectedItem.Value);
    }

    protected void Calendar1_SelectionChanged(object sender, EventArgs e)
    {
        SelectedDate.Text = 
            Calendar1.SelectedDate.ToString();
    }

</script>

<html >
<head id="Head1" runat="server">
    <title>UpdatePanel Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" 
                               runat="server" />
            <asp:UpdatePanel ID="UpdatePanel1"
                             runat="server">
                <ContentTemplate>
                    <asp:Calendar ID="Calendar1" 
                                  ShowTitle="True"
                                  OnSelectionChanged="Calendar1_SelectionChanged"
                                  runat="server" />
                    <div>
                        Background:
                        <br />
                        <asp:DropDownList ID="ColorList" 
                                          AutoPostBack="True" 
                                          OnSelectedIndexChanged="DropDownSelection_Change"
                                          runat="server">
                            <asp:ListItem Selected="True" Value="White"> 
                            White </asp:ListItem>
                            <asp:ListItem Value="Silver"> 
                            Silver </asp:ListItem>
                            <asp:ListItem Value="DarkGray"> 
                            Dark Gray </asp:ListItem>
                            <asp:ListItem Value="Khaki"> 
                            Khaki </asp:ListItem>
                            <asp:ListItem Value="DarkKhaki"> D
                            ark Khaki </asp:ListItem>
                        </asp:DropDownList>
                    </div>
                    <br />
                    Selected date:
                    <asp:Label ID="SelectedDate" 
                               runat="server">None.</asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
            <br />
        </div>
    </form>
</body>
</html>

处理部分页面更新错误和注册脚本

下面的示例演示如何在部分页面更新期间提供自定义错误处理。默认情况下,如果在部分页面更新期间出现错误,则会显示一个 JavaScript 消息框。该示例演示如何通过为 AsyncPostBackError 事件提供处理程序,以及设置该事件处理程序中的 AsyncPostBackErrorMessage 属性来使用自定义错误处理。还可以设置 AllowCustomErrorsRedirect 属性来指定当在部分页面更新期间出现错误时,如何使用 Web.config 文件的自定义错误部分。在此示例中,使用 AllowCustomErrorsRedirect 属性的默认值。这表明如果 Web.config 文件包含 customErrors 元素,则该元素将决定如何显示错误。有关更多信息,请参见 customErrors 元素(ASP.NET 设置架构)

Visual Basic
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Try
            Dim a As Int32
            a = Int32.Parse(TextBox1.Text)
            Dim b As Int32
            b = Int32.Parse(TextBox2.Text)
            Dim res As Int32 = a / b
            Label1.Text = res.ToString()
        Catch ex As Exception
            If (TextBox1.Text.Length > 0 AndAlso TextBox2.Text.Length > 0) Then
                ex.Data("ExtraInfo") = " You can't divide " & _
                  TextBox1.Text & " by " & TextBox2.Text & "."
            End If
            Throw ex
        End Try

    End Sub
    Protected Sub ScriptManager1_AsyncPostBackError(ByVal sender As Object, ByVal e As System.Web.UI.AsyncPostBackErrorEventArgs)
        If (e.Exception.Data("ExtraInfo") <> Nothing) Then
            ScriptManager1.AsyncPostBackErrorMessage = _
               e.Exception.Message & _
               e.Exception.Data("ExtraInfo").ToString()
        Else
            ScriptManager1.AsyncPostBackErrorMessage = _
               "An unspecified error occurred."
        End If
    End Sub
</script>

<html >
<head id="Head1" runat="server">
    <title>UpdatePanel Error Handling Example</title>
    <style type="text/css">
    #UpdatePanel1 {
      width: 200px; height: 50px;
      border: solid 1px gray;
    }
    #AlertDiv{
    left: 40%; top: 40%;
    position: absolute; width: 200px;
    padding: 12px; 
    border: #000000 1px solid;
    background-color: white; 
    text-align: left;
    visibility: hidden;
    z-index: 99;
    }
    #AlertButtons{
    position: absolute; right: 5%; bottom: 5%;
    }
    </style>
</head>
<body id="bodytag">
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" 
            OnAsyncPostBackError="ScriptManager1_AsyncPostBackError" runat="server" >
            <Scripts>
            <asp:ScriptReference Path="ErrorHandling.js" />
            </Scripts>
            </asp:ScriptManager>

            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Width="39px"></asp:TextBox>
                    /
                    <asp:TextBox ID="TextBox2" runat="server" Width="39px"></asp:TextBox>
                    =
                    <asp:Label ID="Label1" runat="server"></asp:Label><br />
                    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="calculate" />
                </ContentTemplate>
            </asp:UpdatePanel>
            <div id="AlertDiv">
                <div id="AlertMessage">
                </div>
                <br />
                <div id="AlertButtons">
                    <input id="OKButton" type="button" value="OK" runat="server" onclick="ClearErrorState()" />
                </div>
            </div>
        </div>
    </form>
</body>
</html>

C#
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
            int a = Int32.Parse(TextBox1.Text);
            int b = Int32.Parse(TextBox2.Text);
            int res = a / b;
            Label1.Text = res.ToString();
        }
        catch (Exception ex)
        {
            if (TextBox1.Text.Length > 0 && TextBox2.Text.Length > 0)
            {
                ex.Data["ExtraInfo"] = " You can't divide " +
                    TextBox1.Text + " by " + TextBox2.Text + ".";
            }
            throw ex;
        }
    }

    protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
    {
        if (e.Exception.Data["ExtraInfo"] != null)
        {
            ScriptManager1.AsyncPostBackErrorMessage =
                e.Exception.Message +
                e.Exception.Data["ExtraInfo"].ToString();
        }
        else
        {
            ScriptManager1.AsyncPostBackErrorMessage =
                "An unspecified error occurred.";
        }
    }
</script>

<html >
<head id="Head1" runat="server">
    <title>UpdatePanel Error Handling Example</title>
    <style type="text/css">
    #UpdatePanel1 {
      width: 200px; height: 50px;
      border: solid 1px gray;
    }
    #AlertDiv{
    left: 40%; top: 40%;
    position: absolute; width: 200px;
    padding: 12px; 
    border: #000000 1px solid;
    background-color: white; 
    text-align: left;
    visibility: hidden;
    z-index: 99;
    }
    #AlertButtons{
    position: absolute; right: 5%; bottom: 5%;
    }
    </style>
</head>
<body id="bodytag">
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" 
            OnAsyncPostBackError="ScriptManager1_AsyncPostBackError" runat="server" >
            <Scripts>
            <asp:ScriptReference Path="ErrorHandling.js" />
            </Scripts>
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Width="39px"></asp:TextBox>
                    /
                    <asp:TextBox ID="TextBox2" runat="server" Width="39px"></asp:TextBox>
                    =
                    <asp:Label ID="Label1" runat="server"></asp:Label><br />
                    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="calculate" />
                </ContentTemplate>
            </asp:UpdatePanel>
            <div id="AlertDiv">
                <div id="AlertMessage">
                </div>
                <br />
                <div id="AlertButtons">
                    <input id="OKButton" type="button" value="OK" runat="server" onclick="ClearErrorState()" />
                </div>
            </div>
        </div>
    </form>
</body>
</html>

全球化浏览器中显示的日期和时间

下面的示例演示如何设置 EnableScriptGlobalization 属性,以便客户端脚本可以在浏览器中显示区域性特定的日期和时间。在本例中,@ Page 指令的 Culture 属性设置为 auto。因此,在当前浏览器设置中指定的第一种语言决定了页面的区域性和 UI 区域性。有关更多信息,请参见如何:为 ASP.NET 网页全球化设置区域性和 UI 区域性

Visual Basic
<%@ Page Language="VB" Culture="auto" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html >
<head id="Head1" runat="server">
    <title>Globalization Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" EnableScriptGlobalization="true" runat="server">
        </asp:ScriptManager>
        <script type="text/javascript">
        function pageLoad() {
          Sys.UI.DomEvent.addHandler($get("Button1"), "click", formatDate);
        }
        function formatDate() {
          var d = new Date();
          try {
            $get('Label1').innerHTML = d.localeFormat("dddd, dd MMMM yyyy HH:mm:ss");
          }
          catch(e) {
            alert("Error:" + e.message);
          }
        }
        </script>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False" UpdateMode="Conditional">
        <ContentTemplate>
        <asp:Panel ID="Panel1" runat="server" GroupingText="Update Panel">
        <asp:Button ID="Button1" runat="server" Text="Display Date" />

        <br />

        <asp:Label ID="Label1" runat="server"></asp:Label>
        </asp:Panel>
        </ContentTemplate>
        </asp:UpdatePanel>
    </form>
</body>
</html>

C#
<%@ Page Language="C#" Culture="auto" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html >
<head id="Head1" runat="server">
    <title>Globalization Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" EnableScriptGlobalization="true" runat="server">
        </asp:ScriptManager>
        <script type="text/javascript">
        function pageLoad() {
          Sys.UI.DomEvent.addHandler($get("Button1"), "click", formatDate);
        }
        function formatDate() {
          var d = new Date();
          try {
            $get('Label1').innerHTML = d.localeFormat("dddd, dd MMMM yyyy HH:mm:ss");
          }
          catch(e) {
            alert("Error:" + e.message);
          }
        }
        </script>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False" UpdateMode="Conditional">
        <ContentTemplate>
        <asp:Panel ID="Panel1" runat="server" GroupingText="Update Panel">
        <asp:Button ID="Button1" runat="server" Text="Display Date" />

        <br />

        <asp:Label ID="Label1" runat="server"></asp:Label>
        </asp:Panel>
        </ContentTemplate>
        </asp:UpdatePanel>
    </form>
</body>
</html>

System..::.Object
  System.Web.UI..::.Control
    System.Web.UI..::.ScriptManager
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

.NET Framework

受以下版本支持:3.5
社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利  |  商标  |  隐私权声明
Page view tracker