Sys.WebForms.PageRequestManager-Klasse
Aktualisiert: November 2007
Verwaltet Teilaktualisierungen von UpdatePanel-Serversteuerelementen im Browser. Definiert zusätzlich Eigenschaften, Ereignisse und Methoden, die zum Anpassen einer Webseite unter Verwendung von Clientskripts verwendet werden können.
Namespace:Sys.WebForms
Vererbung: keine
var prm = Sys.WebForms.PageRequestManager.getInstance();
Konstruktor
Sie erstellen nicht direkt eine neue Instanz der PageRequestManager-Klasse. Stattdessen ist eine Instanz verfügbar, wenn das Teilrendering von Seiten aktiviert ist. Rufen Sie die getInstance-Methode auf, um die Instanz der PageRequestManager-Klasse abzurufen.
Member
Name |
Beschreibung |
---|---|
Initialisiert eine neue Instanz von Sys.WebForms.PageRequestManager-Klasse. |
|
Wird ausgelöst, bevor die Verarbeitung eines asynchronen Postbacks gestartet und die Postbackanforderung an den Server gesendet wird. |
|
Wird ausgelöst, nachdem ein asynchrones Postback beendet und die Steuerung wieder an den Browser zurückgegeben wurde. |
|
Wird während der Initialisierung des asynchronen Postbacks ausgelöst. |
|
Wird nach der Aktualisierung des gesamten Inhalts der Seite durch ein synchrones oder asynchrones Postback ausgelöst. |
|
Wird nach dem Empfang der Antwort des Servers auf ein asynchrones Postback ausgelöst, jedoch vor der Aktualisierung von Inhalten auf der Seite. |
|
Beendet alle Updates, die als Ergebnis eines asynchronen Postbacks auftreten würden. |
|
Gibt ECMAScript (JavaScript)-Ressourcen frei und trennt Ereignisse. |
|
Gibt die Instanz der PageRequestManager-Klasse für die Seite zurück. |
|
Sys.WebForms.PageRequestManager isInAsyncPostBack-Eigenschaft |
Gibt einen Wert zurück, der angibt, ob das PageRequestManager-Objekt ein Postback verarbeitet. |
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
Die PageRequestManager-Klasse verwaltet das Teilrendering von Seiten im Browser. Sie können Seitenbereiche mithilfe eines oder mehrerer UpdatePanel-Steuerelemente und eines ScriptManager-Steuerelements aktualisieren.
Eine Instanz von PageRequestManager wird nicht direkt erstellt. Wenn das Teilrendering von Seiten aktiviert ist, ist automatisch eine Instanz der PageRequestManager-Klasse verfügbar. Sie können über die getInstance-Methode darauf zugreifen.
Die PageRequestManager-Klasse definiert Ereignisse, die Sie verwenden können, um das Teilrendering von Seiten Ihrer Seite anzupassen. Die Clientinfrastrukur unterstützt die automatische Ereignisbindung auf ähnliche Weise, wie Serverseitenereignisse automatisch an Methoden wie Page_Load gebunden werden. In der folgenden Tabelle sind die Clientereignisse aufgeführt, die Sie verwenden können, sowie Szenarien, in denen sie behandelt werden können. Die Ereignisse in der Tabelle sind in der Reihenfolge aufgeführt, in der sie von der PageRequestManager-Klasse aufgerufen werden.
PageRequestManager-Ereignis |
Beschreibung |
---|---|
initializeRequest |
Wird ausgelöst, bevor die Verarbeitung der asynchronen Anforderung beginnt. Sie können dieses Ereignis verwenden, um ein Postback abzubrechen. |
beginRequest |
Wird ausgelöst, bevor die Verarbeitung eines asynchronen Postbacks gestartet und das Postback an den Server gesendet wird. Sie können dieses Ereignis zum Festlegen von Anforderungsheadern oder zum Starten einer Animation verwenden, die angibt, dass die Seite verarbeitet wird. |
pageLoading |
Wird nach dem Empfang der Antwort des Servers auf ein asynchrones Postback ausgelöst, jedoch vor der Aktualisierung von Inhalten auf der Seite. Mithilfe dieses Ereignisses können Sie einen benutzerdefinierten Übergangseffekt für aktualisierte Inhalte bereitstellen. |
pageLoaded |
Wird nach der Aktualisierung des gesamten Inhalts der Seite durch ein synchrones oder asynchrones Postback ausgelöst. Mithilfe dieses Ereignisses können Sie einen benutzerdefinierten Übergangseffekt für aktualisierte Inhalte bereitstellen. |
endRequest |
Wird ausgelöst, nachdem ein asynchrones Postback beendet und die Steuerung wieder an den Browser zurückgegeben wurde. Verwenden Sie dieses Ereignis, um Benutzer zu benachrichtigen oder um Fehler zu protokollieren. |
Wenn die Seite mindestens ein UpdatePanel-Steuerelement enthält und der SupportsPartialRendering-Wert des ScriptManager-Steuerelements true lautet (der Standardwert), wird die JavaScript-Bibliothek, die die PageRequestManager-Klasse definiert, beim ScriptManager-Steuerelement registriert und ist für die Seite verfügbar.
Beispiel
Im folgenden Beispiel wird veranschaulicht, wie das beginRequest-Ereignis zum Anzeigen einer Fortschrittsbenachrichtigung während eines asynchronen Postbacks verwendet wird. Die getInstance-Methode wird aufgerufen, um die aktuelle PageRequestManager-Instanz abzurufen. Skriptcode ist in Handlern für das beginRequest-Ereignis und endRequest-Ereignis enthalten.
<%@ 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 ProcessClick_Handler(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(2000);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager beginRequest Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
div.AlertStyle
{
background-color: #FFC080;
top: 95%;
left: 1%;
height: 20px;
width: 270px;
position: absolute;
visibility: hidden;
}
</style>
</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_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
{
var elem = args.get_postBackElement();
ActivateAlertDiv('visible', 'AlertDiv', elem.value + ' processing...');
}
function EndRequestHandler(sender, args)
{
ActivateAlertDiv('hidden', 'AlertDiv', '');
}
function ActivateAlertDiv(visstring, elem, msg)
{
var adiv = $get(elem);
adiv.style.visibility = visstring;
adiv.innerHTML = msg;
}
</script>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" GroupingText="Update Panel">
Last update:
<%= DateTime.Now.ToString()%>.
<br />
<asp:Button runat="server" ID="Button1" Text="Process 1" OnClick="ProcessClick_Handler" />
<asp:Button runat="server" ID="Button2" Text="Process 2" OnClick="ProcessClick_Handler" />
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<div id="AlertDiv" class="AlertStyle">
</div>
</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 ProcessClick_Handler(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(2000);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>PageRequestManager beginRequest Example</title>
<style type="text/css">
body {
font-family: Tahoma;
}
div.AlertStyle
{
background-color: #FFC080;
top: 95%;
left: 1%;
height: 20px;
width: 270px;
position: absolute;
visibility: hidden;
}
</style>
</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_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
{
var elem = args.get_postBackElement();
ActivateAlertDiv('visible', 'AlertDiv', elem.value + ' processing...');
}
function EndRequestHandler(sender, args)
{
ActivateAlertDiv('hidden', 'AlertDiv', '');
}
function ActivateAlertDiv(visstring, elem, msg)
{
var adiv = $get(elem);
adiv.style.visibility = visstring;
adiv.innerHTML = msg;
}
</script>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="Server">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" GroupingText="Update Panel">
Last update:
<%= DateTime.Now.ToString()%>.
<br />
<asp:Button runat="server" ID="Button1" Text="Process 1" OnClick="ProcessClick_Handler" />
<asp:Button runat="server" ID="Button2" Text="Process 2" OnClick="ProcessClick_Handler" />
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<div id="AlertDiv" class="AlertStyle">
</div>
</div>
</form>
</body>
</html>