ClientScriptManager.GetCallbackEventReference Метод

Определение

Получает ссылку на клиентскую функцию, которая при вызове инициализирует обратный вызов клиента к событию сервера.Obtains a reference to a client function that, when invoked, initiates a client call back to a server event.

Перегрузки

GetCallbackEventReference(Control, String, String, String)

Получает ссылку на клиентскую функцию, которая при вызове инициализирует обратный вызов клиента к событию сервера.Obtains a reference to a client function that, when invoked, initiates a client call back to a server event. Клиентская функция для перегруженного метода включает указанный элемент управления, аргумент, клиентский скрипт и контекст.The client function for this overloaded method includes a specified control, argument, client script, and context.

GetCallbackEventReference(Control, String, String, String, Boolean)

Получает ссылку на клиентскую функцию, которая при вызове инициализирует обратный вызов клиента к событиям сервера.Obtains a reference to a client function that, when invoked, initiates a client call back to server events. Клиентская функция для перегруженного метода включает указанный элемент управления, аргумент, клиентский скрипт, контекст и логическое значение.The client function for this overloaded method includes a specified control, argument, client script, context, and Boolean value.

GetCallbackEventReference(String, String, String, String, String, Boolean)

Получает ссылку на клиентскую функцию, которая при вызове инициализирует обратный вызов клиента к событиям сервера.Obtains a reference to a client function that, when invoked, initiates a client call back to server events. Клиентская функция для перегруженного метода включает указанную цель, аргумент, клиентский скрипт, контекст, обработчик ошибок и логическое значение.The client function for this overloaded method includes a specified target, argument, client script, context, error handler, and Boolean value.

GetCallbackEventReference(Control, String, String, String, String, Boolean)

Получает ссылку на клиентскую функцию, которая при вызове инициализирует обратный вызов клиента к событиям сервера.Obtains a reference to a client function that, when invoked, initiates a client call back to server events. Клиентская функция для перегруженного метода включает указанный элемент управления, аргумент, клиентский скрипт, контекст, обработчик ошибок и логическое значение.The client function for this overloaded method includes a specified control, argument, client script, context, error handler, and Boolean value.

GetCallbackEventReference(Control, String, String, String)

Получает ссылку на клиентскую функцию, которая при вызове инициализирует обратный вызов клиента к событию сервера.Obtains a reference to a client function that, when invoked, initiates a client call back to a server event. Клиентская функция для перегруженного метода включает указанный элемент управления, аргумент, клиентский скрипт и контекст.The client function for this overloaded method includes a specified control, argument, client script, and context.

public:
 System::String ^ GetCallbackEventReference(System::Web::UI::Control ^ control, System::String ^ argument, System::String ^ clientCallback, System::String ^ context);
public string GetCallbackEventReference (System.Web.UI.Control control, string argument, string clientCallback, string context);
member this.GetCallbackEventReference : System.Web.UI.Control * string * string * string -> string

Параметры

control
Control

Сервер Control, обрабатывающий обратные вызовы клиента.The server Control that handles the client callback. Элемент управления должен реализовать интерфейс ICallbackEventHandler и предоставить метод RaiseCallbackEvent(String).The control must implement the ICallbackEventHandler interface and provide a RaiseCallbackEvent(String) method.

argument
String

Аргумент, передаваемый от клиентского скрипта серверу.An argument passed from the client script to the server Метод RaiseCallbackEvent(String).RaiseCallbackEvent(String) method.

clientCallback
String

Имя клиентского обработчика событий, который принимает результаты успешно выполненного события сервера.The name of the client event handler that receives the result of the successful server event.

context
String

Клиентский скрипт, оцениваемый на стороне клиента до инициализации обратного вызова.The client script that is evaluated on the client prior to initiating the callback. Результат скрипта отправляется обратно клиентскому обработчику событий.The result of the script is passed back to the client event handler.

Возвращаемое значение

Имя клиентской функции, осуществляющей обратный вызов клиента.The name of a client function that invokes the client callback.

Исключения

Заданный объект Control имеет значение null.The Control specified is null.

Указанный элемент управления Control не реализует интерфейс ICallbackEventHandler.The Control specified does not implement the ICallbackEventHandler interface.

Примеры

В следующем примере кода показано, как использовать две перегрузки GetCallbackEventReference метода в сценарии обратного вызова клиента, которые увеличивают целые числа.The following code example demonstrates how to use two overloads of the GetCallbackEventReference method in a client callback scenario that increments integers.

Показаны два механизма обратного вызова. различие между ними заключается в использовании context параметра.Two callback mechanisms are shown; the difference between them is the use of the context parameter. Функция обратного вызова context клиентапредоставляетсяспомощьюпараметра.ReceiveServerData1A ReceiveServerData1 client callback function is provided using the context parameter. В отличие ReceiveServerData2 от этого функция обратного вызова клиента определяется <script> в блоке на странице.In contrast, the ReceiveServerData2 client callback function is defined in a <script> block on the page. Метод — это обработчик сервера, который увеличивает передаваемое ему значение, GetCallbackResult а метод возвращает увеличенное значение в виде строки. RaiseCallbackEventA RaiseCallbackEvent method is the server handler that increments the value that is passed to it and the GetCallbackResult method returns the incremented value as a string. Если метод возвращает ошибку, ProcessCallBackError вызывается Клиентская функция. RaiseCallbackEventIf the RaiseCallbackEvent method returns an error, then the ProcessCallBackError client function is called.

<%@ Page Language="C#" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    
    public int cbCount = 0;
    
    // Define method that processes the callbacks on server.
    public void RaiseCallbackEvent(String eventArgument)
    {
        cbCount = Convert.ToInt32(eventArgument) + 1;
    }

    // Define method that returns callback result.
    public string GetCallbackResult()
    {
        return cbCount.ToString();
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        // Define a StringBuilder to hold messages to output.
        StringBuilder sb = new StringBuilder();

        // Check if this is a postback.
        sb.Append("No page postbacks have occurred.");
        if (Page.IsPostBack)
        {
            sb.Append("A page postback has occurred.");
        }

        // Write out any messages.
        MyLabel.Text = sb.ToString();

        // Get a ClientScriptManager reference from the Page class.
        ClientScriptManager cs = Page.ClientScript;

        // Define one of the callback script's context.
        // The callback script will be defined in a script block on the page.
        StringBuilder context1 = new StringBuilder();
        context1.Append("function ReceiveServerData1(arg, context)");
        context1.Append("{");
        context1.Append("Message1.innerText =  arg;");
        context1.Append("value1 = arg;");
        context1.Append("}");

        // Define callback references.
        String cbReference1 = cs.GetCallbackEventReference(this, "arg", 
            "ReceiveServerData1", context1.ToString());
        String cbReference2 = cs.GetCallbackEventReference("'" + 
            Page.UniqueID + "'", "arg", "ReceiveServerData2", "", 
            "ProcessCallBackError", false);
        String callbackScript1 = "function CallTheServer1(arg, context) {" + 
            cbReference1 + "; }";
        String callbackScript2 = "function CallTheServer2(arg, context) {" + 
            cbReference2 + "; }";

        // Register script blocks will perform call to the server.
        cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer1", 
            callbackScript1, true);
        cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer2", 
            callbackScript2, true);

    }
</script>

<script type="text/javascript">
var value1 = 0;
var value2 = 0;
function ReceiveServerData2(arg, context)
{
    Message2.innerText = arg;
    value2 = arg;
}
function ProcessCallBackError(arg, context)
{
    Message2.innerText = 'An error has occurred.';
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ClientScriptManager Example</title>
</head>
<body>
    <form id="Form1" 
          runat="server">
    <div>
      Callback 1 result: <span id="Message1">0</span>
      <br />
      Callback 2 result: <span id="Message2">0</span>
      <br /> <br />
      <input type="button" 
             value="ClientCallBack1" 
             onclick="CallTheServer1(value1, alert('Increment value'))"/>    
      <input type="button" 
             value="ClientCallBack2" 
             onclick="CallTheServer2(value2, alert('Increment value'))"/>
      <br /> <br />
      <asp:Label id="MyLabel" 
                 runat="server"></asp:Label>
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  
    Public cbCount As Integer = 0
    
    ' Define method that processes the callbacks on server.
    Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _
    Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
        
        cbCount = Convert.ToInt32(eventArgument) + 1
        
    End Sub

    ' Define method that returns callback result.
    Public Function GetCallbackResult() _
    As String Implements _
    System.Web.UI.ICallbackEventHandler.GetCallbackResult

        Return cbCount.ToString()
        
    End Function
    
    
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    
        ' Define a StringBuilder to hold messages to output.
        Dim sb As New StringBuilder()
    
        ' Check if this is a postback.
        sb.Append("No page postbacks have occurred.")
        If (Page.IsPostBack) Then
      
            sb.Append("A page postback has occurred.")
      
        End If
    
        ' Write out any messages.
        MyLabel.Text = sb.ToString()
    
        ' Get a ClientScriptManager reference from the Page class.
        Dim cs As ClientScriptManager = Page.ClientScript

        ' Define one of the callback script's context.
        ' The callback script will be defined in a script block on the page.
        Dim context1 As New StringBuilder()
        context1.Append("function ReceiveServerData1(arg, context)")
        context1.Append("{")
        context1.Append("Message1.innerText =  arg;")
        context1.Append("value1 = arg;")
        context1.Append("}")
    
        ' Define callback references.
        Dim cbReference1 As String = cs.GetCallbackEventReference(Me, "arg", _
            "ReceiveServerData1", context1.ToString())
        Dim cbReference2 As String = cs.GetCallbackEventReference("'" & _
            Page.UniqueID & "'", "arg", "ReceiveServerData2", "", "ProcessCallBackError", False)
        Dim callbackScript1 As String = "function CallTheServer1(arg, context) {" + _
            cbReference1 + "; }"
        Dim callbackScript2 As String = "function CallTheServer2(arg, context) {" + _
            cbReference2 + "; }"
    
        ' Register script blocks will perform call to the server.
        cs.RegisterClientScriptBlock(Me.GetType(), "CallTheServer1", _
            callbackScript1, True)
        cs.RegisterClientScriptBlock(Me.GetType(), "CallTheServer2", _
            callbackScript2, True)
    
    End Sub
</script>

<script type="text/javascript">
var value1 = 0;
var value2 = 0;
function ReceiveServerData2(arg, context)
{
    Message2.innerText = arg;
    value2 = arg;
}
function ProcessCallBackError(arg, context)
{
    Message2.innerText = 'An error has occurred.';
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>ClientScriptManager Example</title>
</head>
<body>
    <form id="Form1" 
          runat="server">
    <div>
      Callback 1 result: <span id="Message1">0</span>
      <br />
      Callback 2 result: <span id="Message2">0</span>
      <br /> <br />
      <input type="button" 
             value="ClientCallBack1" 
             onclick="CallTheServer1(value1, alert('Increment value'))"/>    
      <input type="button" 
             value="ClientCallBack2" 
             onclick="CallTheServer2(value2, alert('Increment value'))"/>
      <br /> <br />
      <asp:Label id="MyLabel" 
                 runat="server"></asp:Label>
    </div>
    </form>
</body>
</html>

Комментарии

GetCallbackEventReference(Control, String, String, String) Метод выполняет нестандартный обратный вызов сервера, который является измененной версией обычного жизненного цикла страницы.The GetCallbackEventReference(Control, String, String, String) method performs an out-of-band callback to the server that is a modified version of a page's normal life cycle. Дополнительные сведения см. в разделе реализация обратных вызовов клиента без обратной передачи.For more information, see Implementing Client Callbacks Without Postbacks.

Примечание

При использовании обозревателя Microsoft Internet Explorer (версии 5,0 или более поздней) механизм обратного вызова скрипта реализуется через COM-объект Microsoft. XmlHttp и требует, чтобы браузер был настроен для запуска элементов управления ActiveX.When the browser is Microsoft Internet Explorer (version 5.0 or later), the script callback mechanism is implemented through the Microsoft.XmlHttp COM object and requires the browser to be set to run ActiveX controls. Для других браузеров используется XMLHttpRequest, использующий локальный модель DOM браузера (DOM).For other browsers, an XMLHttpRequest using the browser's local Document Object Model (DOM) is used. Чтобы проверить, поддерживает ли браузер обратные вызовы клиента, используйте SupportsCallback свойство.To check whether a browser supports client callbacks, use the SupportsCallback property. Чтобы проверить, поддерживает ли браузер XML через HTTP, используйте SupportsXmlHttp свойство.To check whether a browser supports XML over HTTP, use the SupportsXmlHttp property. Оба свойства доступны через Browser свойство встроенного объекта ASP.NET. RequestBoth properties are accessible through the Browser property of the intrinsic ASP.NET Request object.

GetCallbackEventReference ПерегрузкаGetCallbackEventReference метода выполняет обратный вызов синхронно с использованием XML через HTTP.The GetCallbackEventReference overload of the GetCallbackEventReference method performs a callback synchronously using XML over HTTP. При синхронной отправке данных в сценарии обратного вызова синхронные обратные вызовы немедленно возвращаются и не блокируют браузер.When sending data synchronously in a callback scenario, synchronous callbacks return immediately and do not block the browser. Два синхронных обратных вызова не могут выполняться одновременно в браузере.No two synchronous callbacks callback can execute at the same time in the browser. При срабатывании второго синхронного обратного вызова, когда он находится в состоянии ожидания, второй синхронный обратный вызов отменяет первый, а только второй обратный вызов возвратит.If a second synchronous callback is fired while one is currently pending, the second synchronous callback cancels the first and only the second callback will return.

Для асинхронной отправки данных используйте одну из перегрузок, принимающую useAsync параметр, который представляет собой логическое значение, контролирующее это поведение.To send data asynchronously, use one of the overloads that takes the useAsync parameter, which is a Boolean value controlling this behavior. В асинхронном сценарии можно использовать несколько ожидающих обратных вызовов. Однако порядок, в котором они возвращаются, не гарантированно соответствует порядку, в котором они были инициированы.In the asynchronous scenario you can have multiple pending callbacks; however, the order in which they return is not guaranteed to match the order in which they were initiated.

Кроме того, эта перегрузка GetCallbackEventReference метода указывает отсутствие клиентской функции для выполнения условия ошибки RaiseCallbackEvent , сформированного методом.Additionally, this overload of the GetCallbackEventReference method specifies no client function to handle the case of an error condition generated by the RaiseCallbackEvent method. Чтобы указать обработчик обратного вызова ошибок клиента, используйте одну из перегрузок, принимающих clientErrorCallback параметр.To specify a client error callback handler, use one of the overloads that takes the clientErrorCallback parameter.

Метод принимает необязательный строковый argument параметр и возвращает строку. GetCallbackEventReference(Control, String, String, String)The GetCallbackEventReference(Control, String, String, String) method takes an optional string argument parameter and returns a string. Чтобы передать или получить несколько значений, объедините значения из входных или возвращаемых строк соответственно.To pass in or to receive multiple values, concatenate values in the input or return string, respectively.

Примечание

Избегайте использования состояния представления в реализации свойств страницы или элемента управления, которые необходимо обновить во время операций обратного вызова скрипта.Avoid using the view state in the implementation of page or control properties that need be updated during script callback operations. Если свойства должны содержаться в запросах страниц, можно использовать состояние сеанса.If the properties are to survive page requests, you can use session state.

Дополнительно

GetCallbackEventReference(Control, String, String, String, Boolean)

Получает ссылку на клиентскую функцию, которая при вызове инициализирует обратный вызов клиента к событиям сервера.Obtains a reference to a client function that, when invoked, initiates a client call back to server events. Клиентская функция для перегруженного метода включает указанный элемент управления, аргумент, клиентский скрипт, контекст и логическое значение.The client function for this overloaded method includes a specified control, argument, client script, context, and Boolean value.

public:
 System::String ^ GetCallbackEventReference(System::Web::UI::Control ^ control, System::String ^ argument, System::String ^ clientCallback, System::String ^ context, bool useAsync);
public string GetCallbackEventReference (System.Web.UI.Control control, string argument, string clientCallback, string context, bool useAsync);
member this.GetCallbackEventReference : System.Web.UI.Control * string * string * string * bool -> string

Параметры

control
Control

Сервер Control, обрабатывающий обратные вызовы клиента.The server Control that handles the client callback. Элемент управления должен реализовать интерфейс ICallbackEventHandler и предоставить метод RaiseCallbackEvent(String).The control must implement the ICallbackEventHandler interface and provide a RaiseCallbackEvent(String) method.

argument
String

Аргумент, передаваемый от клиентского скрипта серверу.An argument passed from the client script to the server Метод RaiseCallbackEvent(String).RaiseCallbackEvent(String) method.

clientCallback
String

Имя клиентского обработчика событий, который принимает результаты успешно выполненного события сервера.The name of the client event handler that receives the result of the successful server event.

context
String

Клиентский скрипт, оцениваемый на стороне клиента до инициализации обратного вызова.The client script that is evaluated on the client prior to initiating the callback. Результат скрипта отправляется обратно клиентскому обработчику событий.The result of the script is passed back to the client event handler.

useAsync
Boolean

true для выполнения обратного вызова асинхронно; false для выполнения обратного вызова синхронно.true to perform the callback asynchronously; false to perform the callback synchronously.

Возвращаемое значение

Имя клиентской функции, осуществляющей обратный вызов клиента.The name of a client function that invokes the client callback.

Исключения

Заданный объект Control имеет значение null.The Control specified is null.

Указанный элемент управления Control не реализует интерфейс ICallbackEventHandler.The Control specified does not implement the ICallbackEventHandler interface.

Комментарии

Для useAsync GetCallbackEventReference этойtrueперегрузки метода требуется параметр, который позволяет асинхронно выполнять обратный вызов клиента, присвоив ему значение.This overload of the GetCallbackEventReference method requires a useAsync parameter, which allows you to perform the client callback asynchronously by setting the value to true. Перегруженные версии этого метода, не требующие useAsync параметра, устанавливают false значение по умолчанию.The overload versions of this method that do not require the useAsync parameter set the value to false by default.

Дополнительные сведения об этом методе см. в комментариях к методу перегрузки GetCallbackEventReference .For more information on this method, see the remarks for the overload GetCallbackEventReference method.

Дополнительно

GetCallbackEventReference(String, String, String, String, String, Boolean)

Получает ссылку на клиентскую функцию, которая при вызове инициализирует обратный вызов клиента к событиям сервера.Obtains a reference to a client function that, when invoked, initiates a client call back to server events. Клиентская функция для перегруженного метода включает указанную цель, аргумент, клиентский скрипт, контекст, обработчик ошибок и логическое значение.The client function for this overloaded method includes a specified target, argument, client script, context, error handler, and Boolean value.

public:
 System::String ^ GetCallbackEventReference(System::String ^ target, System::String ^ argument, System::String ^ clientCallback, System::String ^ context, System::String ^ clientErrorCallback, bool useAsync);
public string GetCallbackEventReference (string target, string argument, string clientCallback, string context, string clientErrorCallback, bool useAsync);
member this.GetCallbackEventReference : string * string * string * string * string * bool -> string
Public Function GetCallbackEventReference (target As String, argument As String, clientCallback As String, context As String, clientErrorCallback As String, useAsync As Boolean) As String

Параметры

target
String

Имя сервера Control, обрабатывающего обратный вызов клиента.The name of a server Control that handles the client callback. Элемент управления должен реализовать интерфейс ICallbackEventHandler и предоставить метод RaiseCallbackEvent(String).The control must implement the ICallbackEventHandler interface and provide a RaiseCallbackEvent(String) method.

argument
String

Аргумент, передаваемый от клиентского скрипта серверу.An argument passed from the client script to the server Метод RaiseCallbackEvent(String).RaiseCallbackEvent(String) method.

clientCallback
String

Имя клиентского обработчика событий, который принимает результаты успешно выполненного события сервера.The name of the client event handler that receives the result of the successful server event.

context
String

Клиентский скрипт, оцениваемый на стороне клиента до инициализации обратного вызова.The client script that is evaluated on the client prior to initiating the callback. Результат скрипта отправляется обратно клиентскому обработчику событий.The result of the script is passed back to the client event handler.

clientErrorCallback
String

Имя клиентского обработчика событий, принимающего результат, когда в обработчике событий сервера возникает ошибка.The name of the client event handler that receives the result when an error occurs in the server event handler.

useAsync
Boolean

true для выполнения обратного вызова асинхронно; false для выполнения обратного вызова синхронно.true to perform the callback asynchronously; false to perform the callback synchronously.

Возвращаемое значение

Имя клиентской функции, осуществляющей обратный вызов клиента.The name of a client function that invokes the client callback.

Примеры

В следующем примере кода показано, как использовать две перегрузки GetCallbackEventReference метода в сценарии обратного вызова клиента, которые увеличивают целые числа.The following code example demonstrates how to use two overloads of the GetCallbackEventReference method in a client callback scenario that increments integers.

Показаны два механизма обратного вызова. различие между ними заключается в использовании context параметра.Two callback mechanisms are shown; the difference between them is the use of the context parameter. Функция обратного вызова context клиентапредоставляетсяспомощьюпараметра.ReceiveServerData1A ReceiveServerData1 client callback function is provided using the context parameter. В отличие ReceiveServerData2 от этого функция обратного вызова клиента определяется <script> в блоке на странице.In contrast, the ReceiveServerData2 client callback function is defined in a <script> block on the page. Метод — это обработчик сервера, который увеличивает передаваемое ему значение, GetCallbackResult а метод возвращает увеличенное значение в виде строки. RaiseCallbackEventA RaiseCallbackEvent method is the server handler that increments the value that is passed to it and the GetCallbackResult method returns the incremented value as a string. Если метод возвращает ошибку, вызывается Клиентская функция ProcessCallBackError. RaiseCallbackEventIf the RaiseCallbackEvent method returns an error, then the client function ProcessCallBackError is called.

<%@ Page Language="C#" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    
    public int cbCount = 0;
    
    // Define method that processes the callbacks on server.
    public void RaiseCallbackEvent(String eventArgument)
    {
        cbCount = Convert.ToInt32(eventArgument) + 1;
    }

    // Define method that returns callback result.
    public string GetCallbackResult()
    {
        return cbCount.ToString();
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        // Define a StringBuilder to hold messages to output.
        StringBuilder sb = new StringBuilder();

        // Check if this is a postback.
        sb.Append("No page postbacks have occurred.");
        if (Page.IsPostBack)
        {
            sb.Append("A page postback has occurred.");
        }

        // Write out any messages.
        MyLabel.Text = sb.ToString();

        // Get a ClientScriptManager reference from the Page class.
        ClientScriptManager cs = Page.ClientScript;

        // Define one of the callback script's context.
        // The callback script will be defined in a script block on the page.
        StringBuilder context1 = new StringBuilder();
        context1.Append("function ReceiveServerData1(arg, context)");
        context1.Append("{");
        context1.Append("Message1.innerText =  arg;");
        context1.Append("value1 = arg;");
        context1.Append("}");

        // Define callback references.
        String cbReference1 = cs.GetCallbackEventReference(this, "arg", 
            "ReceiveServerData1", context1.ToString());
        String cbReference2 = cs.GetCallbackEventReference("'" + 
            Page.UniqueID + "'", "arg", "ReceiveServerData2", "", 
            "ProcessCallBackError", false);
        String callbackScript1 = "function CallTheServer1(arg, context) {" + 
            cbReference1 + "; }";
        String callbackScript2 = "function CallTheServer2(arg, context) {" + 
            cbReference2 + "; }";

        // Register script blocks will perform call to the server.
        cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer1", 
            callbackScript1, true);
        cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer2", 
            callbackScript2, true);

    }
</script>

<script type="text/javascript">
var value1 = 0;
var value2 = 0;
function ReceiveServerData2(arg, context)
{
    Message2.innerText = arg;
    value2 = arg;
}
function ProcessCallBackError(arg, context)
{
    Message2.innerText = 'An error has occurred.';
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ClientScriptManager Example</title>
</head>
<body>
    <form id="Form1" 
          runat="server">
    <div>
      Callback 1 result: <span id="Message1">0</span>
      <br />
      Callback 2 result: <span id="Message2">0</span>
      <br /> <br />
      <input type="button" 
             value="ClientCallBack1" 
             onclick="CallTheServer1(value1, alert('Increment value'))"/>    
      <input type="button" 
             value="ClientCallBack2" 
             onclick="CallTheServer2(value2, alert('Increment value'))"/>
      <br /> <br />
      <asp:Label id="MyLabel" 
                 runat="server"></asp:Label>
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  
    Public cbCount As Integer = 0
    
    ' Define method that processes the callbacks on server.
    Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _
    Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
        
        cbCount = Convert.ToInt32(eventArgument) + 1
        
    End Sub

    ' Define method that returns callback result.
    Public Function GetCallbackResult() _
    As String Implements _
    System.Web.UI.ICallbackEventHandler.GetCallbackResult

        Return cbCount.ToString()
        
    End Function
    
    
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    
        ' Define a StringBuilder to hold messages to output.
        Dim sb As New StringBuilder()
    
        ' Check if this is a postback.
        sb.Append("No page postbacks have occurred.")
        If (Page.IsPostBack) Then
      
            sb.Append("A page postback has occurred.")
      
        End If
    
        ' Write out any messages.
        MyLabel.Text = sb.ToString()
    
        ' Get a ClientScriptManager reference from the Page class.
        Dim cs As ClientScriptManager = Page.ClientScript

        ' Define one of the callback script's context.
        ' The callback script will be defined in a script block on the page.
        Dim context1 As New StringBuilder()
        context1.Append("function ReceiveServerData1(arg, context)")
        context1.Append("{")
        context1.Append("Message1.innerText =  arg;")
        context1.Append("value1 = arg;")
        context1.Append("}")
    
        ' Define callback references.
        Dim cbReference1 As String = cs.GetCallbackEventReference(Me, "arg", _
            "ReceiveServerData1", context1.ToString())
        Dim cbReference2 As String = cs.GetCallbackEventReference("'" & _
            Page.UniqueID & "'", "arg", "ReceiveServerData2", "", "ProcessCallBackError", False)
        Dim callbackScript1 As String = "function CallTheServer1(arg, context) {" + _
            cbReference1 + "; }"
        Dim callbackScript2 As String = "function CallTheServer2(arg, context) {" + _
            cbReference2 + "; }"
    
        ' Register script blocks will perform call to the server.
        cs.RegisterClientScriptBlock(Me.GetType(), "CallTheServer1", _
            callbackScript1, True)
        cs.RegisterClientScriptBlock(Me.GetType(), "CallTheServer2", _
            callbackScript2, True)
    
    End Sub
</script>

<script type="text/javascript">
var value1 = 0;
var value2 = 0;
function ReceiveServerData2(arg, context)
{
    Message2.innerText = arg;
    value2 = arg;
}
function ProcessCallBackError(arg, context)
{
    Message2.innerText = 'An error has occurred.';
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>ClientScriptManager Example</title>
</head>
<body>
    <form id="Form1" 
          runat="server">
    <div>
      Callback 1 result: <span id="Message1">0</span>
      <br />
      Callback 2 result: <span id="Message2">0</span>
      <br /> <br />
      <input type="button" 
             value="ClientCallBack1" 
             onclick="CallTheServer1(value1, alert('Increment value'))"/>    
      <input type="button" 
             value="ClientCallBack2" 
             onclick="CallTheServer2(value2, alert('Increment value'))"/>
      <br /> <br />
      <asp:Label id="MyLabel" 
                 runat="server"></asp:Label>
    </div>
    </form>
</body>
</html>

Комментарии

Эта перегрузка GetCallbackEventReference метода target принимает Control строковый параметр вместо параметра.This overload of the GetCallbackEventReference method takes a target string parameter instead of a Control parameter. Используйте эту перегрузку, если необходимо, чтобы обратный вызов перейдет к чему-либо, UniqueID отличному от строки, содержащей элемент управления.Use this overload when you want the callback to go back to something other than a string containing the UniqueID of the control.

Кроме того, для этой перегрузки GetCallbackEventReference метода useAsync требуется clientErrorCallback параметр и.Additionally, this overload of the GetCallbackEventReference method requires a useAsync and a clientErrorCallback parameter. Параметр позволяет асинхронно выполнять обратный вызов клиента, присвоив ему trueзначение. useAsyncThe useAsync parameter allows you to perform the client callback asynchronously by setting the value to true. Перегруженные версии этого метода, не требующие useAsync параметра, устанавливают false значение по умолчанию.The overload versions of this method that do not require the useAsync parameter set the value to false by default. Параметр позволяет определить имя клиентской функции, вызываемой, если обработчик сервера RaiseCallbackEvent (метод) возвращает ошибку. clientErrorCallbackThe clientErrorCallback parameter allows you to define the name of the client function that is called if the server handler, the RaiseCallbackEvent method, returns an error. Перегруженные версии этого метода, не требующие clientErrorCallback , чтобы параметр установил значение null.The overload versions of this method that do not require the clientErrorCallback parameter set the value to null.

Дополнительные сведения об этом методе см. в комментариях к методу перегрузки GetCallbackEventReference .For more information on this method, see the remarks for the overload GetCallbackEventReference method.

Дополнительно

GetCallbackEventReference(Control, String, String, String, String, Boolean)

Получает ссылку на клиентскую функцию, которая при вызове инициализирует обратный вызов клиента к событиям сервера.Obtains a reference to a client function that, when invoked, initiates a client call back to server events. Клиентская функция для перегруженного метода включает указанный элемент управления, аргумент, клиентский скрипт, контекст, обработчик ошибок и логическое значение.The client function for this overloaded method includes a specified control, argument, client script, context, error handler, and Boolean value.

public:
 System::String ^ GetCallbackEventReference(System::Web::UI::Control ^ control, System::String ^ argument, System::String ^ clientCallback, System::String ^ context, System::String ^ clientErrorCallback, bool useAsync);
public string GetCallbackEventReference (System.Web.UI.Control control, string argument, string clientCallback, string context, string clientErrorCallback, bool useAsync);
member this.GetCallbackEventReference : System.Web.UI.Control * string * string * string * string * bool -> string

Параметры

control
Control

Сервер Control, обрабатывающий обратные вызовы клиента.The server Control that handles the client callback. Элемент управления должен реализовать интерфейс ICallbackEventHandler и предоставить метод RaiseCallbackEvent(String).The control must implement the ICallbackEventHandler interface and provide a RaiseCallbackEvent(String) method.

argument
String

Аргумент, передаваемый от клиентского скрипта методу RaiseCallbackEvent(String) сервера.An argument passed from the client script to the server RaiseCallbackEvent(String) method.

clientCallback
String

Имя клиентского обработчика событий, который принимает результаты успешно выполненного события сервера.The name of the client event handler that receives the result of the successful server event.

context
String

Клиентский скрипт, оцениваемый на стороне клиента до инициализации обратного вызова.The client script that is evaluated on the client prior to initiating the callback. Результат скрипта отправляется обратно клиентскому обработчику событий.The result of the script is passed back to the client event handler.

clientErrorCallback
String

Имя клиентского обработчика событий, принимающего результат, когда в обработчике событий сервера возникает ошибка.The name of the client event handler that receives the result when an error occurs in the server event handler.

useAsync
Boolean

true для выполнения обратного вызова асинхронно; false для выполнения обратного вызова синхронно.true to perform the callback asynchronously; false to perform the callback synchronously.

Возвращаемое значение

Имя клиентской функции, осуществляющей обратный вызов клиента.The name of a client function that invokes the client callback.

Исключения

Заданный объект Control имеет значение null.The Control specified is null.

Указанный элемент управления Control не реализует интерфейс ICallbackEventHandler.The Control specified does not implement the ICallbackEventHandler interface.

Комментарии

Для этой перегрузки GetCallbackEventReference метода useAsync требуется clientErrorCallback параметр и.This overload of the GetCallbackEventReference method requires a useAsync and a clientErrorCallback parameter. Параметр позволяет асинхронно выполнять обратный вызов клиента, присвоив ему trueзначение. useAsyncThe useAsync parameter allows you to perform the client callback asynchronously by setting the value to true. Перегруженные версии этого метода, не требующие useAsync параметра, устанавливают false значение по умолчанию.The overload versions of this method that do not require the useAsync parameter set the value to false by default. Параметр позволяет определить имя клиентской функции, вызываемой, если обработчик сервера RaiseCallbackEvent (метод) возвращает ошибку. clientErrorCallbackThe clientErrorCallback parameter allows you to define the name of the client function that is called if the server handler (the RaiseCallbackEvent method) returns an error. Перегруженные версии этого метода, не требующие clientErrorCallback , чтобы параметр установил значение null.The overload versions of this method that do not require the clientErrorCallback parameter set the value to null.

Дополнительные сведения об этом методе см. в комментариях к методу перегрузки GetCallbackEventReference .For more information on this method, see the remarks for the overload GetCallbackEventReference method.

Дополнительно

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