ScriptManager.RegisterClientScriptBlock 方法

定义

ScriptManager 控件注册一个客户端脚本块以与 UpdatePanel 控件中的某个控件一起使用,然后将该此脚本块添加到页面中。

重载

RegisterClientScriptBlock(Control, Type, String, String, Boolean)

ScriptManager 控件注册一个客户端脚本块以与 UpdatePanel 控件中的某个控件一起使用,然后将该此脚本块添加到页面中。

RegisterClientScriptBlock(Page, Type, String, String, Boolean)

ScriptManager 控件注册一个客户端脚本块以与 UpdatePanel 控件中的某个控件一起使用,然后将该此脚本块添加到页面中。

RegisterClientScriptBlock(Control, Type, String, String, Boolean)

ScriptManager 控件注册一个客户端脚本块以与 UpdatePanel 控件中的某个控件一起使用,然后将该此脚本块添加到页面中。

public:
 static void RegisterClientScriptBlock(System::Web::UI::Control ^ control, Type ^ type, System::String ^ key, System::String ^ script, bool addScriptTags);
public static void RegisterClientScriptBlock (System.Web.UI.Control control, Type type, string key, string script, bool addScriptTags);
static member RegisterClientScriptBlock : System.Web.UI.Control * Type * string * string * bool -> unit
Public Shared Sub RegisterClientScriptBlock (control As Control, type As Type, key As String, script As String, addScriptTags As Boolean)

参数

control
Control

正在注册客户端脚本块的控件。

type
Type

客户端脚本块的类型。 通常使用 typeof 运算符 (C#) 或 GetType 运算符 (Visual Basic) 来指定此参数,以检索正在注册此脚本的控件的类型。

key
String

脚本块的唯一标识符。

script
String

脚本。

addScriptTags
Boolean

如果要用 <script></script> 标记括起脚本块,则为 true;否则为 false

例外

该客户端脚本块的 typenull

  • 或 - 正在注册该脚本块的控件为 null

正在注册该脚本块的控件不在页面的控件树中。

示例


<%@ 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 Page_PreRender(object sender, EventArgs e)
    {
        string script = @"
        function ToggleItem(id)
          {
            var elem = $get('div'+id);
            if (elem) 
            {
              if (elem.style.display != 'block') 
              {
                elem.style.display = 'block';
                elem.style.visibility = 'visible';
              } 
              else
              {
                elem.style.display = 'none';
                elem.style.visibility = 'hidden';
              }
            }
          }
        ";

        ScriptManager.RegisterClientScriptBlock(
            this,
            typeof(Page),
            "ToggleScript",
            script,
            true);
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>ScriptManager RegisterClientScriptInclude</title>
</head>
<body>
    <form id="Form1" runat="server">
        <div>
            <br />
            <asp:ScriptManager ID="ScriptManager1" 
                                 EnablePartialRendering="true"
                                 runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" 
                               UpdateMode="Conditional"
                               runat="server">
                <ContentTemplate>
                    <asp:XmlDataSource ID="XmlDataSource1"
                                       DataFile="~/App_Data/Contacts.xml"
                                       XPath="Contacts/Contact"
                                       runat="server"/>
                    <asp:DataList ID="DataList1" DataSourceID="XmlDataSource1"
                        BackColor="White" BorderColor="#E7E7FF" BorderStyle="None"
                        BorderWidth="1px" CellPadding="3" GridLines="Horizontal"
                        runat="server">
                        <ItemTemplate>
                            <div style="font-size:larger; font-weight:bold; cursor:pointer;" 
                                 onclick='ToggleItem(<%# Eval("ID") %>);'>
                                <span><%# Eval("Name") %></span>
                            </div>
                            <div id='div<%# Eval("ID") %>' 
                                 style="display: block; visibility: visible;">
                                <span><%# Eval("Company") %></span>
                                <br />
                                <a href='<%# Eval("URL") %>' 
                                   target="_blank" 
                                   title='<%# Eval("Name", "Link to the {0} Web site") %>'>
                                   <%# Eval("URL") %></a>
                                </asp:LinkButton>
                                <hr />
                            </div>
                        </ItemTemplate>
                        <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
                        <SelectedItemStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
                        <AlternatingItemStyle BackColor="#F7F7F7" />
                        <ItemStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
                        <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
                    </asp:DataList>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>
</body>
</html>

<%@ 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 Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim script As String
        script = _
        "function ToggleItem(id)" & _
        "  {" & _
        "    var elem = $get('div'+id);" & _
        "    if (elem)" & _
        "    {" & _
        "      if (elem.style.display != 'block') " & _
        "      {" & _
        "        elem.style.display = 'block';" & _
        "        elem.style.visibility = 'visible';" & _
        "      } " & _
        "      else" & _
        "      {" & _
        "        elem.style.display = 'none';" & _
        "        elem.style.visibility = 'hidden';" & _
        "      }" & _
        "    }" & _
        "  }"
        
        ScriptManager.RegisterClientScriptBlock( _
            Me, _
            GetType(Page), _
            "ToggleScript", _
            script, _
            True)

    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>ScriptManager RegisterClientScriptInclude</title>
</head>
<body>
    <form id="Form1" runat="server">
        <div>
            <br />
            <asp:ScriptManager ID="ScriptManager1" 
                                 EnablePartialRendering="true"
                                 runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" 
                               UpdateMode="Conditional"
                               runat="server">
                <ContentTemplate>
                    <asp:XmlDataSource ID="XmlDataSource1"
                                       DataFile="~/App_Data/Contacts.xml"
                                       XPath="Contacts/Contact"
                                       runat="server"/>
                    <asp:DataList ID="DataList1" DataSourceID="XmlDataSource1"
                        BackColor="White" BorderColor="#E7E7FF" BorderStyle="None"
                        BorderWidth="1px" CellPadding="3" GridLines="Horizontal"
                        runat="server">
                        <ItemTemplate>
                            <div style="font-size:larger; font-weight:bold; cursor:pointer;" 
                                 onclick='ToggleItem(<%# Eval("ID") %>);'>
                                <span><%# Eval("Name") %></span>
                            </div>
                            <div id='div<%# Eval("ID") %>' 
                                 style="display: block; visibility: visible;">
                                <span><%# Eval("Company") %></span>
                                <br />
                                <a href='<%# Eval("URL") %>' 
                                   target="_blank" 
                                   title='<%# Eval("Name", "Link to the {0} Web site") %>'>
                                   <%# Eval("URL") %></a>
                                </asp:LinkButton>
                                <hr />
                            </div>
                        </ItemTemplate>
                        <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
                        <SelectedItemStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
                        <AlternatingItemStyle BackColor="#F7F7F7" />
                        <ItemStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
                        <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
                    </asp:DataList>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>
</body>
</html>
<Contacts>
    <Contact id="1" 
             Name="Aaber, Jesper" 
             Company="A. Data Corporation" 
             URL="http://www.adatum.com/"/>
    <Contact id="2" 
             Name="Canel, Fabrice" 
             Company="Coho Winery" 
             URL="http://www.cohowinery.com/"/>
    <Contact id="3" 
             Name="Heloo, Waleed" 
             Company="Contoso, Ltd" 
             URL="http://www.contoso.com/"/>
    <Contact id="4" 
             Name="Rovik, Dag" 
             Company="Wingtip Toys" 
             URL="http://www.wingtiptoys.com/"/>
</Contacts>

注解

使用此方法 RegisterClientScriptBlock 注册与分页呈现兼容的客户端脚本块,并且没有 Microsoft Ajax 库依赖项。 仅当表示正在更新的控件内的UpdatePanel控件时control,才向页面发送使用此方法注册的客户端脚本块。 若要每次发生异步回发时注册脚本块,请使用 RegisterClientScriptBlock(Page, Type, String, String, Boolean) 此方法的重载。

如果要注册与分页更新无关的ClientScriptManager脚本块,并且如果要在初始页面呈现期间仅注册脚本块一次,请使用RegisterClientScriptBlock类的方法。 可以从页面的属性获取对对象的ClientScript引用ClientScriptManager

true如果是addScriptTags,该方法会在RegisterClientScriptBlock脚本块周围添加<script>标记。 false如果要自行创建<script>标记,如想要设置特定<script>标记的属性时传递。 如果addScriptTags参数false``script包含多个脚本块,则会引发异常。

该方法 RegisterClientScriptBlock 在打开 <form> 标记后将脚本块添加到页面。 无法保证脚本块按注册顺序输出。 如果脚本块的顺序很重要,请使用对象) 将脚本块连接到单个字符串 (StringBuilder ,然后将其注册为单个客户端脚本块。

另请参阅

适用于

RegisterClientScriptBlock(Page, Type, String, String, Boolean)

ScriptManager 控件注册一个客户端脚本块以与 UpdatePanel 控件中的某个控件一起使用,然后将该此脚本块添加到页面中。

public:
 static void RegisterClientScriptBlock(System::Web::UI::Page ^ page, Type ^ type, System::String ^ key, System::String ^ script, bool addScriptTags);
public static void RegisterClientScriptBlock (System.Web.UI.Page page, Type type, string key, string script, bool addScriptTags);
static member RegisterClientScriptBlock : System.Web.UI.Page * Type * string * string * bool -> unit
Public Shared Sub RegisterClientScriptBlock (page As Page, type As Type, key As String, script As String, addScriptTags As Boolean)

参数

page
Page

正在注册客户端脚本块的页对象。

type
Type

客户端脚本块的类型。 通常使用 typeof 运算符 (C#) 或 GetType 运算符 (Visual Basic) 来指定此参数,以检索正在注册此脚本的控件的类型。

key
String

脚本块的唯一标识符。

script
String

要注册的脚本。

addScriptTags
Boolean

如果要用 <script></script> 标记括起脚本块,则为 true;否则为 false

例外

该脚本块的 typenull

  • 或 - 正在注册该脚本块的页为 null

注解

使用此方法注册脚本块时,每次发生异步回发时,都会呈现该脚本。 若要为控件内的 UpdatePanel 控件注册脚本块,以便仅在更新控件时 UpdatePanel 注册脚本,请使用 RegisterClientScriptBlock(Control, Type, String, String, Boolean) 此方法的重载。

如果要注册与分页更新无关的ClientScriptManager脚本块,并且如果要在初始页面呈现期间仅注册脚本块一次,请使用RegisterClientScriptBlock类的方法。 可以从页面的属性获取对对象的ClientScript引用ClientScriptManager

另请参阅

适用于