ScriptManager.RegisterDataItem ScriptManager.RegisterDataItem ScriptManager.RegisterDataItem Method

定義

部分ページ レンダリング中にカスタム データをコントロールに送信します。Sends custom data to controls during partial-page rendering.

オーバーロード

RegisterDataItem(Control, String) RegisterDataItem(Control, String) RegisterDataItem(Control, String)

部分ページ レンダリング中にカスタム データをコントロールに送信します。Sends custom data to a control during partial-page rendering.

RegisterDataItem(Control, String, Boolean) RegisterDataItem(Control, String, Boolean) RegisterDataItem(Control, String, Boolean)

部分ページ レンダリング中にカスタム データをコントロールに送信し、データが JSON (JavaScript Object Notation) 形式かどうかを指定します。Sends custom data to a control during partial-page rendering, and indicates whether the data is in JavaScript Object Notation (JSON) format.

RegisterDataItem(Control, String) RegisterDataItem(Control, String) RegisterDataItem(Control, String)

部分ページ レンダリング中にカスタム データをコントロールに送信します。Sends custom data to a control during partial-page rendering.

public:
 void RegisterDataItem(System::Web::UI::Control ^ control, System::String ^ dataItem);
public void RegisterDataItem (System.Web.UI.Control control, string dataItem);
member this.RegisterDataItem : System.Web.UI.Control * string -> unit

パラメーター

control
Control Control Control

データを受け取るコントロール。The control that is receiving the data.

dataItem
String String String

コントロールに送信されるデータ。The data that is sent to the control.

例外

controlnullです。control is null.

RegisterDataItem(Control, String, Boolean) メソッドはポストバックの際に呼び出されます。The RegisterDataItem(Control, String, Boolean) method is called during a postback.

dataItemcontrol に既に登録されています。dataItem is already registered for control.

次の例は、非同期ポストバック中にLabelページ上の2つのコントロールにデータを送信する方法を示しています。The following example shows how to send data to two Label controls on a page during an asynchronous postback. コントロールLabelUpdatePanelコントロールの内部にありません。The Label controls are not inside an UpdatePanel control.

注意

この例で送信されるデータは、例示のみを目的としています。The data that is sent in this example is for illustration only. 実際のアプリケーションでは、 RegisterDataItemメソッドを使用してサーバーからカスタムデータを送信します。In a real-world application, you would use the RegisterDataItem method to send custom data from the server.

<%@ Page Language="C#" %>

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

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        if (ScriptManager1.IsInAsyncPostBack)
        {
            System.Web.Script.Serialization.JavaScriptSerializer json =
                new System.Web.Script.Serialization.JavaScriptSerializer();
            ScriptManager1.RegisterDataItem(Label1, DateTime.Now.ToString());
            ScriptManager1.RegisterDataItem(Label2, json.Serialize("more data"), true);
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ScriptManager RegisterDataItem Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <script type="text/javascript" language="javascript">
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(PageLoadingHandler);
        function PageLoadingHandler(sender, args) {
            var dataItems = args.get_dataItems();
            if ($get('Label1') !== null)
                $get('Label1').innerHTML = dataItems['Label1'];
            if ($get('Label2') !== null)
                $get('Label2').innerHTML = dataItems['Label2'];
        }
    </script>
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
       UpdatePanel content.
       <asp:Button ID="Button1" Text="Submit" runat="server" />
    </ContentTemplate>
    </asp:UpdatePanel>
    <hr />
    <asp:Label ID="Label1" runat="server" /> <br />
    <asp:Label ID="Label2" runat="server" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

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

<script runat="server">

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        If (ScriptManager1.IsInAsyncPostBack) Then
            Dim json As New System.Web.Script.Serialization.JavaScriptSerializer
            ScriptManager1.RegisterDataItem(Label1, DateTime.Now.ToString())
            ScriptManager1.RegisterDataItem(Label2, json.Serialize("more data"), True)
        End If
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ScriptManager RegisterDataItem Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <script type="text/javascript" language="javascript">
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(PageLoadingHandler);
        function PageLoadingHandler(sender, args) {
            var dataItems = args.get_dataItems();
            if ($get('Label1') !== null)
                $get('Label1').innerHTML = dataItems['Label1'];
            if ($get('Label2') !== null)
                $get('Label2').innerHTML = dataItems['Label2'];
        }
    </script>
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
       UpdatePanel content.
       <asp:Button ID="Button1" Text="Submit" runat="server" />
    </ContentTemplate>
    </asp:UpdatePanel>
    <hr />
    <asp:Label ID="Label1" runat="server" /> <br />
    <asp:Label ID="Label2" runat="server" />
    </div>
    </form>
</body>
</html>

注釈

データを受信するコントロールがUpdatePanelコントロール内にあるかどうかに関係なく、非同期ポストバック中にサーバーからクライアントにデータを送信するには、メソッドを使用します。RegisterDataItemUse the RegisterDataItem method to send data from the server to the client during asynchronous postbacks, regardless of whether the control receiving the data is inside an UpdatePanel control.

メソッドRegisterDataItemは、非同期ポストバック中にのみ呼び出すことができます。The RegisterDataItem method can be called only during an asynchronous postback. ポストバックが非同期であるかどうかをIsInAsyncPostBack判断するには、プロパティを使用します。To determine whether a postback is asynchronous, use the IsInAsyncPostBack property. このメソッドは、にisJsonSerialized false設定されたという名前のパラメーターを受け取るオーバーロードを呼び出します。This method invokes the overload that takes a parameter named isJsonSerialized that is set to false. パラメーターがにfalse設定されている場合、文字列は JavaScript Object Notation (JSON) としてシリアル化されません。 isJsonSerializedWhen the isJsonSerialized parameter is set to false, the string is not serialized as JavaScript Object Notation (JSON). JSON 形式の詳細については、JSON Web サイトの概要に関するページを参照してください。For more information about the JSON format, see the Introducing JSON Web site.

RegisterDataItemメソッドに登録されているデータ項目は、 PageRequestManagerオブジェクトの、 pageLoaded、およびendRequestイベントpageLoadingの実行時にクライアントスクリプトでアクセスできます。The data items that are registered with the RegisterDataItem method can be accessed in client script during the pageLoading, pageLoaded, and endRequest events of the PageRequestManager object. これらのイベントを処理すると、カスタムデータはイベント引数オブジェクトで渡されます。When you handle these events, the custom data is passed in an event argument object. たとえば、 pageLoadingイベントのハンドラーを指定すると、プロパティを公開するPageLoadingEventArgsクラスにカスタムデータが渡されます。For example, if you provide a handler for the pageLoading event, the custom data is passed in the PageLoadingEventArgs class, which exposes a property.

こちらもご覧ください

RegisterDataItem(Control, String, Boolean) RegisterDataItem(Control, String, Boolean) RegisterDataItem(Control, String, Boolean)

部分ページ レンダリング中にカスタム データをコントロールに送信し、データが JSON (JavaScript Object Notation) 形式かどうかを指定します。Sends custom data to a control during partial-page rendering, and indicates whether the data is in JavaScript Object Notation (JSON) format.

public:
 void RegisterDataItem(System::Web::UI::Control ^ control, System::String ^ dataItem, bool isJsonSerialized);
public void RegisterDataItem (System.Web.UI.Control control, string dataItem, bool isJsonSerialized);
member this.RegisterDataItem : System.Web.UI.Control * string * bool -> unit

パラメーター

control
Control Control Control

データを受け取るページ コントロール。The page control that is receiving the data.

dataItem
String String String

コントロールに送信されるデータ。The data that is sent to the control.

isJsonSerialized
Boolean Boolean Boolean

dataItem が JSON としてシリアル化されていることを示す場合は true。それ以外の場合は falsetrue to indicate that dataItem is serialized as JSON; otherwise, false.

例外

controlnullです。control is null.

RegisterDataItem(Control, String, Boolean) メソッドはポストバックの際に呼び出されます。The RegisterDataItem(Control, String, Boolean) method is called during a postback.

dataItemcontrol に既に登録されています。dataItem is already registered for control.

次の例は、非同期ポストバック中にLabelページ上の2つのコントロールにデータを送信する方法を示しています。The following example shows how to send data to two Label controls on a page during an asynchronous postback. コントロールLabelUpdatePanelコントロールの内部にありません。The Label controls are not inside an UpdatePanel control. この例は、パラメーターをisJsonSerialized受け取らないオーバーロードを示しています。This example shows the overload that does not take the isJsonSerialized parameter. それ以外の場合、 dataItems PageLoadingEventArgsオブジェクトのプロパティを取得する手順は、そのオーバーロードを使用していない場合と同じです。Otherwise, the procedure for retrieving the dataItems property of the PageLoadingEventArgs object is the same as if you did not use that overload.

注意

この例で送信されるデータは、例示のみを目的としています。The data that is sent in this example is for illustration only. 実際のアプリケーションでは、 RegisterDataItemメソッドを使用してサーバーからカスタムデータを送信します。In a real-world application, you would use the RegisterDataItem method to send custom data from the server. たとえば、データ項目を使用して、 UpdatePanelコントロール内にないクライアント要素を表示または非表示にするかどうかに関する情報を送信することができます。For example, you could use the data item to send information about whether to hide or show client elements that are not inside an UpdatePanel control.

<%@ Page Language="C#" %>

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

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        if (ScriptManager1.IsInAsyncPostBack)
        {
            System.Web.Script.Serialization.JavaScriptSerializer json =
                new System.Web.Script.Serialization.JavaScriptSerializer();
            ScriptManager1.RegisterDataItem(Label1, DateTime.Now.ToString());
            ScriptManager1.RegisterDataItem(Label2, json.Serialize("more data"), true);
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ScriptManager RegisterDataItem Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <script type="text/javascript" language="javascript">
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(PageLoadingHandler);
        function PageLoadingHandler(sender, args) {
            var dataItems = args.get_dataItems();
            if ($get('Label1') !== null)
                $get('Label1').innerHTML = dataItems['Label1'];
            if ($get('Label2') !== null)
                $get('Label2').innerHTML = dataItems['Label2'];
        }
    </script>
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
       UpdatePanel content.
       <asp:Button ID="Button1" Text="Submit" runat="server" />
    </ContentTemplate>
    </asp:UpdatePanel>
    <hr />
    <asp:Label ID="Label1" runat="server" /> <br />
    <asp:Label ID="Label2" runat="server" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

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

<script runat="server">

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        If (ScriptManager1.IsInAsyncPostBack) Then
            Dim json As New System.Web.Script.Serialization.JavaScriptSerializer
            ScriptManager1.RegisterDataItem(Label1, DateTime.Now.ToString())
            ScriptManager1.RegisterDataItem(Label2, json.Serialize("more data"), True)
        End If
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ScriptManager RegisterDataItem Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <script type="text/javascript" language="javascript">
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(PageLoadingHandler);
        function PageLoadingHandler(sender, args) {
            var dataItems = args.get_dataItems();
            if ($get('Label1') !== null)
                $get('Label1').innerHTML = dataItems['Label1'];
            if ($get('Label2') !== null)
                $get('Label2').innerHTML = dataItems['Label2'];
        }
    </script>
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
       UpdatePanel content.
       <asp:Button ID="Button1" Text="Submit" runat="server" />
    </ContentTemplate>
    </asp:UpdatePanel>
    <hr />
    <asp:Label ID="Label1" runat="server" /> <br />
    <asp:Label ID="Label2" runat="server" />
    </div>
    </form>
</body>
</html>

注釈

データを受信RegisterDataItemするコントロールがUpdatePanelコントロール内にあるかどうかに関係なく、非同期ポストバック中にサーバーからクライアントにデータを送信するには、メソッドを使用します。You use the RegisterDataItem method to send data from the server to the client during asynchronous postbacks, regardless of whether the control receiving the data is inside an UpdatePanel control.

dataItemisJsonSerialized false登録するパラメーターが JSON としてシリアル化されていない場合は、パラメーターをに設定します。 controlIf the dataItem parameter that you register for control is not serialized as JSON, set the isJsonSerialized parameter to false. これにより、クライアントに送信evalされる文字列ごとに関数を使用する必要がなくなります。This avoids the need to use the eval function for each string that is sent to the client. JSON 形式の詳細については、JSON Web サイトの概要に関するページを参照してください。For more information about the JSON format, see the Introducing JSON Web site.

メソッドRegisterDataItemは、非同期ポストバック中にのみ呼び出すことができます。The RegisterDataItem method can be called only during an asynchronous postback. ポストバックが非同期であるかどうかをIsInAsyncPostBack判断するには、プロパティを使用します。To determine whether a postback is asynchronous, use the IsInAsyncPostBack property.

RegisterDataItemメソッドを使用して登録されたデータ項目は、 PageRequestManagerオブジェクトの、 pageLoaded、およびpageLoading endRequestイベントの実行時にクライアントスクリプトでアクセスできます。The data items that are registered by using the RegisterDataItem method can be accessed in client script during the pageLoading, pageLoaded, and endRequest events of the PageRequestManager object. これらのイベントを処理すると、カスタムデータはイベント引数オブジェクトで渡されます。When you handle these events, the custom data is passed in an event argument object. たとえば、 pageLoadingイベントのハンドラーを指定すると、プロパティを公開するPageLoadingEventArgsクラスにカスタムデータが渡されます。For example, if you provide a handler for the pageLoading event, the custom data is passed in the PageLoadingEventArgs class, which exposes a property.

こちらもご覧ください

適用対象