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

クライアント コールバックを処理するサーバー ControlThe 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.

例外

指定された Controlnull です。The Control specified is null.

指定された ControlICallbackEventHandler インターフェイスが実装されていません。The Control specified does not implement the ICallbackEventHandler interface.

次のコード例は、整数をインクリメントするクライアントコールGetCallbackEventReferenceバックシナリオで、メソッドの2つのオーバーロードを使用する方法を示しています。The following code example demonstrates how to use two overloads of the GetCallbackEventReference method in a client callback scenario that increments integers.

2つのコールバック機構が表示されます。これらの違いは、 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 以降) の場合、スクリプトコールバック機構は、Microsoft の XmlHttp COM オブジェクトを介して実装され、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. その他のブラウザーでは、ブラウザーのローカルドキュメントオブジェクトモデル (DOM) を使用する XMLHttpRequest が使用されます。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. ブラウザーが HTTP 経由の XML をサポートしてSupportsXmlHttpいるかどうかを確認するには、プロパティを使用します。To check whether a browser supports XML over HTTP, use the SupportsXmlHttp property. 両方のプロパティには、 Browser組み込みの ASP.NET Requestオブジェクトのプロパティを使用してアクセスできます。Both properties are accessible through the Browser property of the intrinsic ASP.NET Request object.

メソッドのオーバーロードは、 GetCallbackEventReference HTTP 経由で XML を使用して、コールバックを同期的に実行します。 GetCallbackEventReferenceThe 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. 2つの同期コールバックコールバックは、ブラウザーで同時に実行することはできません。No two synchronous callbacks callback can execute at the same time in the browser. 現在保留中の同期コールバックが2番目に発生した場合は、2番目の同期コールバックによって最初のコールバックが取り消され、2番目のコールバックだけが返されます。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.

メソッドGetCallbackEventReference(Control, String, String, String)は、省略可能なargument文字列パラメーターを受け取り、文字列を返します。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

クライアント コールバックを処理するサーバー ControlThe 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。同期コールバックを実行する場合は falsetrue to perform the callback asynchronously; false to perform the callback synchronously.

戻り値

クライアント コールバックを呼び出すクライアント関数の名前。The name of a client function that invokes the client callback.

例外

指定された Controlnull です。The Control specified is null.

指定された ControlICallbackEventHandler インターフェイスが実装されていません。The Control specified does not implement the ICallbackEventHandler interface.

注釈

GetCallbackEventReferenceメソッドのこのオーバーロードにはuseAsync 、パラメーターが必要です。これにより、値をに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。同期コールバックを実行する場合は falsetrue to perform the callback asynchronously; false to perform the callback synchronously.

戻り値

クライアント コールバックを呼び出すクライアント関数の名前。The name of a client function that invokes the client callback.

次のコード例は、整数をインクリメントするクライアントコールGetCallbackEventReferenceバックシナリオで、メソッドの2つのオーバーロードを使用する方法を示しています。The following code example demonstrates how to use two overloads of the GetCallbackEventReference method in a client callback scenario that increments integers.

2つのコールバック機構が表示されます。これらの違いは、 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メソッドのこのオーバーロードは、 Controlパラメーター targetの代わりに文字列パラメーターを受け取ります。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

クライアント コールバックを処理するサーバー ControlThe 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。同期コールバックを実行する場合は falsetrue to perform the callback asynchronously; false to perform the callback synchronously.

戻り値

クライアント コールバックを呼び出すクライアント関数の名前。The name of a client function that invokes the client callback.

例外

指定された Controlnull です。The Control specified is null.

指定された ControlICallbackEventHandler インターフェイスが実装されていません。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.

こちらもご覧ください

適用対象