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) этого метода.

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

Если addScriptTags это trueтак, 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

true для заключения блока скрипта в теги <script> и </script>; в противном случае — false.

Исключения

Тип type блока скрипта равен null.

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

Комментарии

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

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

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

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