Sys.WebForms.PageLoadedEventArgs-Klasse
Aktualisiert: November 2007
Wird vom pageLoaded-Ereignis der Sys.WebForms.PageRequestManager-Klasse zum Senden von Ereignisdaten verwendet, die die im letzten Postback erstellten und aktualisierten UpdatePanel-Steuerelemente darstellen.
Namespace:Sys.WebForms
Vererbung:Sys.EventArgs
var args = new Sys.WebForms.PageLoadedEventArgs();
Konstruktoren
Name |
Beschreibung |
---|---|
Initialisiert eine neue Instanz der PageLoadedEventArgs-Klasse. |
Member
Name |
Beschreibung |
---|---|
Ruft eine JSON-Datenstruktur ab, die mit der RegisterDataItem-Methode der ScriptManager-Klasse registrierte Datenelemente enthält. |
|
Ruft ein Array mit HTML <div>-Elementen ab, die UpdatePanel-Steuerelemente darstellen, die während des letzten asynchronen Postbacks erstellt wurden, als das DOM aktualisiert wurde. |
|
Ruft ein Array mit HTML <div>-Elementen ab, die UpdatePanel-Steuerelemente darstellen, die während des letzten Postbacks gleichzeitig mit dem DOM aktualisiert wurden. |
Tipp
Diese Klasse enthält private Member, die die Clientskriptinfrastruktur unterstützen und nicht für die direkte Verwendung in Code vorgesehen sind. Namen privater Member beginnen mit einem Unterstrich ( _ ).
Hinweise
Das UpdatePanel-Steuerelement gibt HTML <div>-Elemente aus. Das pageLoaded-Ereignis enthält Informationen dazu, welche <div>-Elemente auf der Seite aktualisiert und erstellt wurden. Die panelsCreated-Eigenschaft ist ein Array mit Panel-Elementen, die infolge des aktuellen asynchronen Postbacks erstellt wurden. Die panelsUpdated-Eigenschaft ist ein Array mit Bereichen, die infolge des aktuellen asynchronen Postbacks aktualisiert wurden.
Beispiel
Das folgende Beispiel zeigt, wie mithilfe des pageLoaded-Ereignisses Skriptcode bereitgestellt wird, mit dem während einer Teilaktualisierung einer Seite ein Seitenbereich animiert wird. Die (args) der Ereignisdaten entsprechen einem PageLoadedEventArgs-Objekt.
<%@ 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 LinkButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
TextBox1.Text = DateTime.Now.ToString()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager pageLoaded Event Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
.FieldSetStyle
{
width: 300px;
height: 100px;
}
.UpdatePanelContainer
{
width: 330px;
height:110px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript">
Type.registerNamespace("ScriptLibrary");
ScriptLibrary.BorderAnimation = function(color, duration) {
this._color = color;
this._duration = duration;
}
ScriptLibrary.BorderAnimation.prototype = {
animatePanel: function(panelElement) {
var s = panelElement.style;
s.borderWidth = '1px';
s.borderColor = this._color;
s.borderStyle = 'solid';
window.setTimeout(
function() {{ s.borderWidth = 0; }},
this._duration
);
}
}
ScriptLibrary.BorderAnimation.registerClass('ScriptLibrary.BorderAnimation', null);
var panelUpdatedAnimation = new ScriptLibrary.BorderAnimation('blue', 1000);
var postbackElement;
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);
function beginRequest(sender, args) {
postbackElement = args.get_postBackElement();
}
function pageLoaded(sender, args) {
var updatedPanels = args.get_panelsUpdated();
if (typeof(postbackElement) === "undefined") {
return;
}
else if (postbackElement.id.toLowerCase().indexOf('external') > -1) {
for (i=0; i < updatedPanels.length; i++) {
panelUpdatedAnimation.animatePanel(updatedPanels[i]);
}
}
}
</script>
<p>
<asp:LinkButton ID="ExternalButton" runat="server" OnClick="LinkButton_Click">
Update the panel with animation.
</asp:LinkButton>
</p>
<hr />
<div class="UpdatePanelContainer">
<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ExternalButton" />
</Triggers>
<ContentTemplate>
<fieldset id="FieldSet1" class="FieldSetStyle" runat="server">
<legend>UpdatePanel</legend>
<asp:TextBox runat="server" ID="TextBox1" />
<br />
<asp:LinkButton ID="InternalButton" runat="server" OnClick="LinkButton_Click">
Update the panel with no animation.
</asp:LinkButton>
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
<%@ 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 LinkButton_Click(object sender, EventArgs e)
{
TextBox1.Text = DateTime.Now.ToString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager pageLoaded Event Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
.FieldSetStyle
{
width: 300px;
height: 100px;
}
.UpdatePanelContainer
{
width: 330px;
height:110px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript">
Type.registerNamespace("ScriptLibrary");
ScriptLibrary.BorderAnimation = function(color, duration) {
this._color = color;
this._duration = duration;
}
ScriptLibrary.BorderAnimation.prototype = {
animatePanel: function(panelElement) {
var s = panelElement.style;
s.borderWidth = '1px';
s.borderColor = this._color;
s.borderStyle = 'solid';
window.setTimeout(
function() {{ s.borderWidth = 0; }},
this._duration
);
}
}
ScriptLibrary.BorderAnimation.registerClass('ScriptLibrary.BorderAnimation', null);
var panelUpdatedAnimation = new ScriptLibrary.BorderAnimation('blue', 1000);
var postbackElement;
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);
function beginRequest(sender, args) {
postbackElement = args.get_postBackElement();
}
function pageLoaded(sender, args) {
var updatedPanels = args.get_panelsUpdated();
if (typeof(postbackElement) === "undefined") {
return;
}
else if (postbackElement.id.toLowerCase().indexOf('external') > -1) {
for (i=0; i < updatedPanels.length; i++) {
panelUpdatedAnimation.animatePanel(updatedPanels[i]);
}
}
}
</script>
<p>
<asp:LinkButton ID="ExternalButton" runat="server" OnClick="LinkButton_Click">
Update the panel with animation.
</asp:LinkButton>
</p>
<hr />
<div class="UpdatePanelContainer">
<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ExternalButton" />
</Triggers>
<ContentTemplate>
<fieldset id="FieldSet1" class="FieldSetStyle" runat="server">
<legend>UpdatePanel</legend>
<asp:TextBox runat="server" ID="TextBox1" />
<br />
<asp:LinkButton ID="InternalButton" runat="server" OnClick="LinkButton_Click">
Update the panel with no animation.
</asp:LinkButton>
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>