ClientScriptManager Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет методы управления клиентскими скриптами в веб-приложениях.
public ref class ClientScriptManager sealed
public sealed class ClientScriptManager
type ClientScriptManager = class
Public NotInheritable Class ClientScriptManager
- Наследование
-
ClientScriptManager
Примеры
В следующем примере кода показано использование RegisterClientScriptBlock метода ClientScriptManager класса. На странице определены два клиентских скрипта: PopupScriptотображается оповещение при загрузке страницы, а ButtonClickScriptтакже определяет обработчик клиента для события html-кнопки onClick .
<%@ 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">
public void Page_Load(Object sender, EventArgs e)
{
// Define the name and type of the client scripts on the page.
String csname1 = "PopupScript";
String csname2 = "ButtonClickScript";
Type cstype = this.GetType();
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;
// Check to see if the startup script is already registered.
if (!cs.IsStartupScriptRegistered(cstype, csname1))
{
String cstext1 = "alert('Hello World');";
cs.RegisterStartupScript(cstype, csname1, cstext1, true);
}
// Check to see if the client script is already registered.
if (!cs.IsClientScriptBlockRegistered(cstype, csname2))
{
StringBuilder cstext2 = new StringBuilder();
cstext2.Append("<script type=\"text/javascript\"> function DoClick() {");
cstext2.Append("Form1.Message.value='Text from client script.'} </");
cstext2.Append("script>");
cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ClientScriptManager Example</title>
</head>
<body>
<form id="Form1"
runat="server">
<input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
</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_Load(ByVal sender As Object, ByVal e As System.EventArgs)
' Define the name and type of the client scripts on the page.
Dim csname1 As String = "PopupScript"
Dim csname2 As String = "ButtonClickScript"
Dim cstype As Type = Me.GetType()
' Get a ClientScriptManager reference from the Page class.
Dim cs As ClientScriptManager = Page.ClientScript
' Check to see if the startup script is already registered.
If (Not cs.IsStartupScriptRegistered(cstype, csname1)) Then
Dim cstext1 As String = "alert('Hello World');"
cs.RegisterStartupScript(cstype, csname1, cstext1, True)
End If
' Check to see if the client script is already registered.
If (Not cs.IsClientScriptBlockRegistered(cstype, csname2)) Then
Dim cstext2 As New StringBuilder()
cstext2.Append("<script type=""text/javascript""> function DoClick() {")
cstext2.Append("Form1.Message.value='Text from client script.'} </")
cstext2.Append("script>")
cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), False)
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ClientScriptManager Example</title>
</head>
<body>
<form id="Form1"
runat="server">
<input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
</form>
</body>
</html>
Комментарии
Класс ClientScriptManager используется для управления клиентскими скриптами и их добавления в веб-приложения. Вы можете получить ссылку на ClientScriptManager класс из ClientScript свойства Page объекта.
Вы можете добавить клиентский скрипт на веб-страницу декларативно, включив скрипт в разметку HTML страницы. Однако при динамическом добавлении клиентского скрипта возникают ситуации. Чтобы динамически добавить скрипт, используйте RegisterClientScriptBlock метод, метод, RegisterClientScriptIncludeRegisterStartupScript метод или RegisterOnSubmitStatement метод, в зависимости от того, когда и как нужно добавить скрипт. Дополнительные сведения см. в статье "Практическое руководство. Динамическое добавление скрипта клиента в ASP.NET веб-страницы".
Класс ClientScriptManager однозначно идентифицирует скрипты ключом String и ключом Type. Скрипты с тем же ключом и типом считаются дубликатами. Использование типа скрипта помогает избежать запутанных аналогичных скриптов из различных пользовательских элементов управления, которые могут использоваться на странице.
Класс ClientScriptManager можно использовать для вызова обратных вызовов клиента в ситуациях, когда желательно запускать код сервера от клиента без выполнения обратной передачи. Это называется выполнением обратного вызова вне диапазона к серверу. В обратном вызове клиента функция скрипта клиента отправляет асинхронный запрос на веб-страницу ASP.NET. Веб-страница запускает измененную версию обычного жизненного цикла для обработки обратного вызова. GetCallbackEventReference Используйте метод для получения ссылки на клиентную функцию, которая при вызове инициирует обратный вызов клиента к событию сервера. Дополнительные сведения см. в разделе "Реализация обратных вызовов клиента без обратной передачи".
Замечание
Обратные вызовы скриптов не будут работать в старых браузерах, которые не поддерживают модель объектов документов (DOM), и им требуется, чтобы ECMAScript был включен на клиенте. Чтобы проверить, поддерживает ли браузер обратные вызовы, используйте SupportsCallback свойство, которое доступно через Browser свойство ASP.NET встроенного Request объекта.
GetPostBackEventReference Используйте метод и GetPostBackClientHyperlink метод для определения события обратной передачи клиента. Эти методы позволяют клиентским скриптам выполнять функции скрипта при вызове, чтобы сервер вернулся на страницу. Событие обратной передачи клиента отличается от обратного вызова клиента в том случае, когда веб-страница завершает обычный жизненный цикл для обработки события обратной передачи клиента.
Замечание
Если вы используете Button элемент управления и UseSubmitBehavior для свойства задано falseзначение, можно использовать GetPostBackEventReference метод для возврата события обратной передачи клиента для Button элемента управления.
Свойство OnClientClick элемента управления, ImageButton элемента управления и LinkButton элемента управления можно использовать для запуска клиентского Button скрипта.
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetCallbackEventReference(Control, String, String, String, Boolean) |
Получает ссылку на клиентную функцию, которая при вызове инициирует обратный вызов клиента к событиям сервера. Клиентская функция для этого перегруженного метода включает указанный элемент управления, аргумент, скрипт клиента, контекст и логическое значение. |
| GetCallbackEventReference(Control, String, String, String, String, Boolean) |
Получает ссылку на клиентную функцию, которая при вызове инициирует обратный вызов клиента к событиям сервера. Клиентская функция для этого перегруженного метода включает указанный элемент управления, аргумент, клиентский скрипт, контекст, обработчик ошибок и логическое значение. |
| GetCallbackEventReference(Control, String, String, String) |
Получает ссылку на клиентную функцию, которая при вызове инициирует обратный вызов клиента к событию сервера. Клиентская функция для этого перегруженного метода включает указанный элемент управления, аргумент, скрипт клиента и контекст. |
| GetCallbackEventReference(String, String, String, String, String, Boolean) |
Получает ссылку на клиентную функцию, которая при вызове инициирует обратный вызов клиента к событиям сервера. Клиентская функция для этого перегруженного метода включает указанный целевой объект, аргумент, клиентский скрипт, контекст, обработчик ошибок и логическое значение. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetPostBackClientHyperlink(Control, String, Boolean) |
Получает ссылку, |
| GetPostBackClientHyperlink(Control, String) |
Получает ссылку, |
| GetPostBackEventReference(Control, String, Boolean) |
Возвращает строку, используемую в событии клиента, чтобы вызвать обратную передачу на сервер. Ссылочная строка определяется указанным элементом управления, обрабатывающим обратную передачу и строковый аргумент дополнительных сведений о событии. При необходимости регистрирует ссылку на события для проверки. |
| GetPostBackEventReference(Control, String) |
Возвращает строку, которая может использоваться в клиентском событии для обратной передачи на сервер. Ссылочная строка определяется указанным элементом управления, обрабатывающим обратную передачу и строковый аргумент дополнительных сведений о событии. |
| GetPostBackEventReference(PostBackOptions, Boolean) |
Возвращает строку, которая может использоваться в клиентском событии для обратной передачи на сервер. Ссылочная строка определяется указанным PostBackOptions объектом. При необходимости регистрирует ссылку на события для проверки. |
| GetPostBackEventReference(PostBackOptions) |
Возвращает строку, которая может использоваться в клиентском событии для обратной передачи на сервер. Ссылка определяется указанным PostBackOptions экземпляром. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| GetWebResourceUrl(Type, String) |
Возвращает ссылку на URL-адрес ресурса в сборке. |
| IsClientScriptBlockRegistered(String) |
Определяет, зарегистрирован ли блок скрипта клиента в Page объекте с помощью указанного ключа. |
| IsClientScriptBlockRegistered(Type, String) |
Определяет, зарегистрирован ли блок скрипта клиента в Page объекте с помощью ключа и типа. |
| IsClientScriptIncludeRegistered(String) |
Определяет, зарегистрирован ли клиентский скрипт в Page объекте с помощью указанного ключа. |
| IsClientScriptIncludeRegistered(Type, String) |
Определяет, зарегистрирован ли клиентский скрипт в Page объекте с помощью ключа и типа. |
| IsOnSubmitStatementRegistered(String) |
Определяет, зарегистрирована ли инструкция OnSubmit в объекте Page с помощью указанного ключа. |
| IsOnSubmitStatementRegistered(Type, String) |
Определяет, зарегистрирована ли инструкция OnSubmit в объекте Page с помощью указанного ключа и типа. |
| IsStartupScriptRegistered(String) |
Определяет, зарегистрирован ли скрипт запуска в Page объекте с помощью указанного ключа. |
| IsStartupScriptRegistered(Type, String) |
Определяет, зарегистрирован ли скрипт запуска в объекте с помощью указанного Page ключа и типа. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| RegisterArrayDeclaration(String, String) |
Регистрирует объявление массива JavaScript с Page объектом с помощью имени массива и значения массива. |
| RegisterClientScriptBlock(Type, String, String, Boolean) |
Регистрирует клиентский скрипт с Page объектом с помощью типа, ключа, литерала скрипта и логического значения, указывающего, следует ли добавлять теги скриптов. |
| RegisterClientScriptBlock(Type, String, String) |
Регистрирует клиентский Page скрипт с объектом с помощью литерала типа, ключа и скрипта. |
| RegisterClientScriptInclude(String, String) |
Регистрирует клиентский скрипт с Page объектом с помощью ключа и URL-адреса, что позволяет вызывать скрипт из клиента. |
| RegisterClientScriptInclude(Type, String, String) |
Регистрирует клиентский скрипт с Page объектом с помощью типа, ключа и URL-адреса. |
| RegisterClientScriptResource(Type, String) |
Регистрирует ресурс клиентского Page скрипта в объекте с помощью типа и имени ресурса. |
| RegisterExpandoAttribute(String, String, String, Boolean) |
Регистрирует пару name/value в качестве настраиваемого атрибута (expando) указанного элемента управления, заданного идентификатором элемента управления, именем атрибута, значением атрибута и логическим значением, указывающим, следует ли кодировать значение атрибута. |
| RegisterExpandoAttribute(String, String, String) |
Регистрирует пару name/value в качестве настраиваемого атрибута (expando) указанного элемента управления с идентификатором элемента управления, именем атрибута и значением атрибута. |
| RegisterForEventValidation(PostBackOptions) |
Регистрирует ссылку на события для проверки с PostBackOptionsпомощью . |
| RegisterForEventValidation(String, String) |
Регистрирует ссылку на события для проверки с уникальным идентификатором элемента управления и аргументами событий, представляющими элемент управления клиента, создающий событие. |
| RegisterForEventValidation(String) |
Регистрирует ссылку на события для проверки с уникальным идентификатором элемента управления, представляющего клиентский элемент управления, создающий событие. |
| RegisterHiddenField(String, String) |
Регистрирует скрытое значение в объекте Page . |
| RegisterOnSubmitStatement(Type, String, String) |
Регистрирует инструкцию OnSubmit с Page объектом с помощью типа, ключа и литерала скрипта. Инструкция выполняется при отправке HtmlForm . |
| RegisterStartupScript(Type, String, String, Boolean) |
Регистрирует скрипт запуска с Page помощью объекта с помощью типа, ключа, литерала скрипта и логическое значение, указывающее, следует ли добавлять теги скриптов. |
| RegisterStartupScript(Type, String, String) |
Регистрирует скрипт запуска с Page объектом с помощью типа, ключа и литерала скрипта. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| ValidateEvent(String, String) |
Проверяет событие клиента, зарегистрированное для проверки событий с помощью RegisterForEventValidation(String, String) метода. |
| ValidateEvent(String) |
Проверяет событие клиента, зарегистрированное для проверки событий с помощью RegisterForEventValidation(String) метода. |