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

Sys.WebForms.PageRequestManager-Konstruktor

Initialisiert eine neue Instanz von Sys.WebForms.PageRequestManager-Klasse.

Sys.WebForms.PageRequestManager beginRequest-Ereignis

Wird ausgelöst, bevor die Verarbeitung eines asynchronen Postbacks gestartet und die Postbackanforderung an den Server gesendet wird.

Sys.WebForms.PageRequestManager endRequest-Ereignis

Wird ausgelöst, nachdem ein asynchrones Postback beendet und die Steuerung wieder an den Browser zurückgegeben wurde.

Sys.WebForms.PageRequestManager initializeRequest-Ereignis

Wird während der Initialisierung des asynchronen Postbacks ausgelöst.

Sys.WebForms.PageRequestManager pageLoaded-Ereignis

Wird nach der Aktualisierung des gesamten Inhalts der Seite durch ein synchrones oder asynchrones Postback ausgelöst.

Sys.WebForms.PageRequestManager pageLoading-Ereignis

Wird nach dem Empfang der Antwort des Servers auf ein asynchrones Postback ausgelöst, jedoch vor der Aktualisierung von Inhalten auf der Seite.

Sys.WebForms.PageRequestManager abortPostBack-Methode

Beendet alle Updates, die als Ergebnis eines asynchronen Postbacks auftreten würden.

Sys.WebForms.PageRequestManager dispose-Methode

Gibt ECMAScript (JavaScript)-Ressourcen frei und trennt Ereignisse.

Sys.WebForms.PageRequestManager getInstance-Methode

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>

Siehe auch

Referenz

ScriptManager

UpdatePanel