ScriptManager.RegisterClientScriptBlock Metod

Definition

Registrerar ett klientskriptblock med kontrollen ScriptManager för användning med en kontroll som finns i en UpdatePanel kontroll och lägger sedan till skriptblocket på sidan.

Överlagringar

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

Registrerar ett klientskriptblock med kontrollen ScriptManager för användning med en kontroll som finns i en UpdatePanel kontroll och lägger sedan till skriptblocket på sidan.

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

Registrerar ett klientskriptblock med kontrollen ScriptManager för användning med en kontroll som finns i en UpdatePanel kontroll och lägger sedan till skriptblocket på sidan.

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

Registrerar ett klientskriptblock med kontrollen ScriptManager för användning med en kontroll som finns i en UpdatePanel kontroll och lägger sedan till skriptblocket på sidan.

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)

Parametrar

control
Control

Kontrollen som registrerar klientskriptblocket.

type
Type

Typen av klientskriptblock. Den här parametern anges vanligtvis med operatorn typeof (C#) eller operatorn GetType (Visual Basic) för att hämta typen av kontroll som registrerar skriptet.

key
String

En unik identifierare för skriptblocket.

script
String

Skriptet.

addScriptTags
Boolean

trueom du vill omsluta skriptblocket i <script> och </script> taggar, annars . false

Undantag

Klientskriptblocket type är null.

-eller-

Kontrollen som registrerar skriptblocket är null.

Kontrollen som registrerar skriptblocket finns inte i sidans kontrollträd.

Exempel


<%@ 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>

Kommentarer

Du använder metoden RegisterClientScriptBlock för att registrera ett klientskriptblock som är kompatibelt med partiell sidåtergivning och som inte har några Microsoft Beroenden för Ajax-bibliotek. Klientskriptblock som registreras med den här metoden skickas endast till sidan när control representerar en kontroll som finns i en UpdatePanel kontroll som uppdateras. Om du vill registrera ett skriptblock varje gång en asynkron postback inträffar använder du överlagringen av den RegisterClientScriptBlock(Page, Type, String, String, Boolean) här metoden.

Om du vill registrera ett skriptblock som inte gäller partiella siduppdateringar, och om du bara vill registrera skriptblocket en gång under den första sidåtergivningen RegisterClientScriptBlock , använder du -metoden för ClientScriptManager klassen. Du kan hämta en referens till ClientScriptManager objektet från ClientScript sidans egenskap.

Om addScriptTags är trueRegisterClientScriptBlock lägger metoden till <script> taggar runt skriptblocket. Skicka false om du vill skapa <script> taggar själv, till exempel när du vill ange attributen för specifika <script> taggar. Om addScriptTags är false och parametern script innehåller flera skriptblock genereras ett undantag.

Metoden RegisterClientScriptBlock lägger till ett skriptblock på sidan efter den inledande <form> taggen. Skriptblocken garanteras inte vara utdata i samma ordning som de registreras. Om ordningen på skriptblocken är viktig sammanfogar du skriptblocken till en enda sträng (till exempel genom att använda StringBuilder objektet) och registrerar dem sedan som ett enda klientskriptblock.

Se även

Gäller för

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

Registrerar ett klientskriptblock med kontrollen ScriptManager för användning med en kontroll som finns i en UpdatePanel kontroll och lägger sedan till skriptblocket på sidan.

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)

Parametrar

page
Page

Det sidobjekt som registrerar klientskriptblocket.

type
Type

Typen av klientskriptblock. Den här parametern anges vanligtvis med operatorn typeof (C#) eller operatorn GetType (Visual Basic) för att hämta typen av kontroll som registrerar skriptet.

key
String

En unik identifierare för skriptblocket.

script
String

Skriptet som ska registreras.

addScriptTags
Boolean

trueom du vill omsluta skriptblocket i <script> och </script> taggar, annars . false

Undantag

Skriptblocket type är null.

-eller-

Sidan som registrerar skriptblocket är null.

Kommentarer

När du registrerar ett skriptblock med den här metoden återges skriptet varje gång en asynkron postback sker. Om du vill registrera ett skriptblock för en kontroll som finns i en UpdatePanel kontroll så att skriptet endast registreras när UpdatePanel kontrollen uppdateras använder du överbelastningen av den RegisterClientScriptBlock(Control, Type, String, String, Boolean) här metoden.

Om du vill registrera ett skriptblock som inte gäller partiella siduppdateringar, och om du bara vill registrera skriptblocket en gång under den första sidåtergivningen RegisterClientScriptBlock , använder du -metoden för ClientScriptManager klassen. Du kan hämta en referens till ClientScriptManager objektet från ClientScript sidans egenskap.

Se även

Gäller för