ScriptManager.RegisterDataItem Methode

Definitie

Hiermee worden aangepaste gegevens verzonden naar besturingselementen tijdens het weergeven van gedeeltelijke pagina's.

Overloads

Name Description
RegisterDataItem(Control, String)

Hiermee worden aangepaste gegevens naar een besturingselement verzonden tijdens het weergeven van gedeeltelijke pagina's.

RegisterDataItem(Control, String, Boolean)

Hiermee worden aangepaste gegevens naar een besturingselement verzonden tijdens het weergeven van gedeeltelijke pagina's en wordt aangegeven of de gegevens de JSON-indeling (JavaScript Object Notation) hebben.

RegisterDataItem(Control, String)

Hiermee worden aangepaste gegevens naar een besturingselement verzonden tijdens het weergeven van gedeeltelijke pagina's.

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
Public Sub RegisterDataItem (control As Control, dataItem As String)

Parameters

control
Control

Het besturingselement dat de gegevens ontvangt.

dataItem
String

De gegevens die naar het besturingselement worden verzonden.

Uitzonderingen

control is null.

De RegisterDataItem(Control, String, Boolean) methode wordt aangeroepen tijdens een postback.

dataItem is al geregistreerd voor control.

Voorbeelden

In het volgende voorbeeld ziet u hoe u gegevens naar twee Label besturingselementen op een pagina verzendt tijdens een asynchrone postback. De Label besturingselementen bevinden zich niet in een UpdatePanel besturingselement.

Note

De gegevens die in dit voorbeeld worden verzonden, zijn alleen ter illustratie. In een echte toepassing gebruikt u de RegisterDataItem methode om aangepaste gegevens van de server te verzenden.

<%@ 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>

Opmerkingen

Gebruik de RegisterDataItem methode om gegevens van de server naar de client te verzenden tijdens asynchrone postbacks, ongeacht of het besturingselement dat de gegevens ontvangt zich in een UpdatePanel besturingselement bevindt.

De RegisterDataItem methode kan alleen worden aangeroepen tijdens een asynchrone postback. Gebruik de IsInAsyncPostBack eigenschap om te bepalen of een postback asynchroon is. Met deze methode wordt de overbelasting aangeroepen die een parameter met de naam isJsonSerialized gebruikt die is ingesteld op false. Wanneer de isJsonSerialized parameter is ingesteld op false, wordt de tekenreeks niet geserialiseerd als JavaScript Object Notation (JSON). Zie de introductie van de JSON-website voor meer informatie over de JSON-indeling .

De gegevensitems die zijn geregistreerd bij de RegisterDataItem methode, kunnen worden geopend in het clientscript tijdens de pageLoading, pageLoadeden endRequest gebeurtenissen van het PageRequestManager object. Wanneer u deze gebeurtenissen verwerkt, worden de aangepaste gegevens doorgegeven in een gebeurtenisargumentobject. Als u bijvoorbeeld een handler voor de pageLoading gebeurtenis opgeeft, worden de aangepaste gegevens doorgegeven in de PageLoadingEventArgs klasse, waarmee een dataItems eigenschap wordt weergegeven.

Zie ook

Van toepassing op

RegisterDataItem(Control, String, Boolean)

Hiermee worden aangepaste gegevens naar een besturingselement verzonden tijdens het weergeven van gedeeltelijke pagina's en wordt aangegeven of de gegevens de JSON-indeling (JavaScript Object Notation) hebben.

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
Public Sub RegisterDataItem (control As Control, dataItem As String, isJsonSerialized As Boolean)

Parameters

control
Control

Het pagina-besturingselement dat de gegevens ontvangt.

dataItem
String

De gegevens die naar het besturingselement worden verzonden.

isJsonSerialized
Boolean

trueom aan te geven dat dataItem deze is geserialiseerd als JSON; anders. false

Uitzonderingen

control is null.

De RegisterDataItem(Control, String, Boolean) methode wordt aangeroepen tijdens een postback.

dataItem is al geregistreerd voor control.

Voorbeelden

In het volgende voorbeeld ziet u hoe u gegevens naar twee Label besturingselementen op een pagina verzendt tijdens een asynchrone postback. De Label besturingselementen bevinden zich niet in een UpdatePanel besturingselement. In dit voorbeeld ziet u de overbelasting die de isJsonSerialized parameter niet accepteert. Anders is de procedure voor het ophalen van de dataItems eigenschap van het PageLoadingEventArgs object hetzelfde als als als u die overbelasting niet hebt gebruikt.

Note

De gegevens die in dit voorbeeld worden verzonden, zijn alleen ter illustratie. In een echte toepassing gebruikt u de RegisterDataItem methode om aangepaste gegevens van de server te verzenden. U kunt bijvoorbeeld het gegevensitem gebruiken om informatie te verzenden over het verbergen of weergeven van clientelementen die zich niet in een UpdatePanel besturingselement bevinden.

<%@ 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>

Opmerkingen

U gebruikt de RegisterDataItem methode om gegevens van de server naar de client te verzenden tijdens asynchrone postbacks, ongeacht of het besturingselement dat de gegevens ontvangt zich in een UpdatePanel besturingselement bevindt.

Als de dataItem parameter waarvoor u zich registreert control , niet wordt geserialiseerd als JSON, stelt u de isJsonSerialized parameter in op false. Dit voorkomt dat u de eval functie moet gebruiken voor elke tekenreeks die naar de client wordt verzonden. Zie de introductie van de JSON-website voor meer informatie over de JSON-indeling .

De RegisterDataItem methode kan alleen worden aangeroepen tijdens een asynchrone postback. Gebruik de IsInAsyncPostBack eigenschap om te bepalen of een postback asynchroon is.

De gegevensitems die zijn geregistreerd met behulp van de RegisterDataItem methode, kunnen worden geopend in het clientscript tijdens het pageLoadingpageLoaded, en endRequest gebeurtenissen van het PageRequestManager object. Wanneer u deze gebeurtenissen verwerkt, worden de aangepaste gegevens doorgegeven in een gebeurtenisargumentobject. Als u bijvoorbeeld een handler voor de pageLoading gebeurtenis opgeeft, worden de aangepaste gegevens doorgegeven in de PageLoadingEventArgs klasse, waarmee een dataItems eigenschap wordt weergegeven.

Zie ook

Van toepassing op