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 свойства страницы.