ScriptManager.RegisterDataItem Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.