Поделиться через


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

true Значение , чтобы заключить блок скрипта и <script></script> теги; в противном случае false.

Исключения

Блок type скрипта клиента .null

–или–

Элемент управления, регистрирующий блок скрипта, является 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. Блоки скриптов клиента, зарегистрированные с помощью этого метода, отправляются на страницу только при control представлении элемента управления, который находится внутри обновляемого UpdatePanel элемента управления. Чтобы зарегистрировать блок скрипта при каждом возникновении асинхронной обратной передачи, используйте RegisterClientScriptBlock(Page, Type, String, String, Boolean) перегрузку этого метода.

Если вы хотите зарегистрировать блок скрипта, который не относится к обновлениям частичной страницы, и если вы хотите зарегистрировать блок скрипта только один раз во время первоначальной ClientScriptManager отрисовки страниц, используйте RegisterClientScriptBlock метод класса. Ссылку на ClientScriptManager объект можно получить из ClientScript свойства страницы.

Если addScriptTags это trueRegisterClientScriptBlock так, метод добавляет <script> теги вокруг блока скрипта. Передайте false , если вы хотите самостоятельно создать <script> теги, например, если вы хотите задать атрибуты определенных <script> тегов. Если addScriptTags параметр falsescript содержит несколько блоков скриптов, создается исключение.

Метод 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

true Значение , чтобы заключить блок скрипта и <script></script> теги; в противном случае false.

Исключения

Блок type скрипта имеет значение null.

–или–

Страница, которая регистрирует блок скрипта, является null.

Комментарии

При регистрации блока скрипта с помощью этого метода скрипт выполняется отрисовка скрипта при каждом выполнении асинхронной обратной передачи. Чтобы зарегистрировать блок скрипта для элемента управления, который находится внутри UpdatePanel элемента управления, чтобы скрипт регистрировался только при UpdatePanel обновлении элемента управления, используйте RegisterClientScriptBlock(Control, Type, String, String, Boolean) перегрузку этого метода.

Если вы хотите зарегистрировать блок скрипта, который не относится к обновлениям частичной страницы, и если вы хотите зарегистрировать блок скрипта только один раз во время первоначальной ClientScriptManager отрисовки страниц, используйте RegisterClientScriptBlock метод класса. Ссылку на ClientScriptManager объект можно получить из ClientScript свойства страницы.

См. также раздел

Применяется к