Page.RegisterClientScriptBlock(String, String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Внимание!
The recommended alternative is ClientScript.RegisterClientScriptBlock(Type type, string key, string script). http://go.microsoft.com/fwlink/?linkid=14202
Выпускает клиентские блоки скриптов в качестве ответа.
public:
virtual void RegisterClientScriptBlock(System::String ^ key, System::String ^ script);
public virtual void RegisterClientScriptBlock (string key, string script);
[System.Obsolete("The recommended alternative is ClientScript.RegisterClientScriptBlock(Type type, string key, string script). http://go.microsoft.com/fwlink/?linkid=14202")]
public virtual void RegisterClientScriptBlock (string key, string script);
abstract member RegisterClientScriptBlock : string * string -> unit
override this.RegisterClientScriptBlock : string * string -> unit
[<System.Obsolete("The recommended alternative is ClientScript.RegisterClientScriptBlock(Type type, string key, string script). http://go.microsoft.com/fwlink/?linkid=14202")>]
abstract member RegisterClientScriptBlock : string * string -> unit
override this.RegisterClientScriptBlock : string * string -> unit
Public Overridable Sub RegisterClientScriptBlock (key As String, script As String)
Параметры
- key
- String
Уникальный ключ, определяющий блок скрипта.
- script
- String
Содержимое скрипта, отправляемое клиенту.
- Атрибуты
Примеры
В следующем примере кода демонстрируется использование метода в сочетании RegisterClientScriptBlock с методом IsClientScriptBlockRegistered . Если ECMAScript в блоке объявления кода еще не зарегистрирован, как определено IsClientScriptBlockRegisteredв , RegisterClientScriptBlock вызов выполняется.
<%@ 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)
{
String csname1 = "PopupScript";
String csname2 = "ButtonClickScript";
if (!IsClientScriptBlockRegistered(csname1))
{
String cstext1 = "<script type=\"text/javascript\">" +
"alert('Hello World');</" + "script>";
RegisterStartupScript(csname1, cstext1);
}
if (!IsClientScriptBlockRegistered(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>");
RegisterClientScriptBlock(csname2, cstext2.ToString());
}
}
</script>
<html >
<head>
<title>RegisterClientScriptBlock 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 EventArgs)
Dim csname1 As String = "PopupScript"
Dim csname2 As String = "ButtonClickScript"
If Not IsClientScriptBlockRegistered(csname1) Then
Dim cstext1 As String = "<script type=""text/javascript"">" & _
"alert('Hello World');</" & "script>"
RegisterStartupScript(csname1, cstext1)
End If
If Not IsClientScriptBlockRegistered(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>")
RegisterClientScriptBlock(csname2, cstext2.ToString())
End If
End Sub
</script>
<html >
<head>
<title>RegisterClientScriptBlock 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<form runat= server>
элемента объекта. Не забудьте включить открывающие и закрывающие <script>
элементы вокруг строки блока скрипта, указанной в параметре script
.
Так как этот метод использует ключ для идентификации блока скрипта, блок скрипта не должен выдаваться в выходной поток каждый раз, когда он запрашивается другим экземпляром управления сервера. Использование ключа также снижает вероятность того, что блоки скрипта различных элементов управления будут мешать друг другу.
Все блоки скрипта с одинаковыми key
значениями параметров считаются дубликатом.
Примечание
Не забудьте добавить теги комментариев HTML вокруг скрипта, чтобы он не отображался, если запрашивающий браузер не поддерживает скрипты.
Метод RegisterClientScriptBlock не рекомендуется к использованию. Вместо него следует использовать метод RegisterClientScriptBlock класса ClientScriptManager.