Sys.WebForms.PageRequestManager initializeRequest-Ereignis

Aktualisiert: November 2007

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

Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(initializeRequestHandler)
Sys.WebForms.PageRequestManager.getInstance().remove_initializeRequest(initializeRequestHandler)

Parameter

Ausdruck

Definition

initializeRequestHandler

Der Name der Handlermethode, die aufgerufen wird.

Hinweise

Die initializeRequest-Methode wird ausgelöst, bevor die Verarbeitung der asynchronen Anforderung beginnt. Sie können dieses Ereignis verwenden, um ein Postback abzubrechen.

Weitere Informationen über das PageRequestManager-Ereignismodell finden Sie unter Arbeiten mit PageRequestManager-Ereignissen.

Beispiel

Im folgenden Beispiel wird gezeigt, wie das initializeRequest-Ereignis verwendet wird, um ein asynchrones Postback abzubrechen. Durch Skript im initializeRequest-Ereignishandler wird ermittelt, ob derzeit ein asynchrones Postback ausgeführt wird. Dazu wird die isInAsyncPostBack-Eigenschaft der PageRequestManager-Klasse verwendet. Wenn kein Postback ausgeführt wird, wird die postBackElement-Eigenschaft der Sys.WebForms.InitializeRequestEventArgs-Klasse verwendet, um die ID des Elements zu ermitteln, das das Postback verursacht hat. Wenn die ID der ID einer Schaltfläche entspricht, durch die das Postback abgebrochen wird, wird die abortPostBack-Methode aufgerufen. Andernfalls wird die aktuelle Anforderung über die cancel-Eigenschaft der Sys.CancelEventArgs Klasse abgebrochen.

<%@ 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 ButtonClick_Handler(ByVal sender As Object, ByVal e As System.EventArgs)
        System.Threading.Thread.Sleep(3000)
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>PageRequestManager initializeRequest Example</title>
    <style type="text/css">
    body {
        font-family: Tahoma;
    }
    a  {
        text-decoration: none;
    }
    a:hover {
        text-decoration: underline;
    }
    div.UpdatePanelStyle{
       width: 300px;
       height: 300px;
    }
    div.AlertStyle {
      font-size: smaller;
      background-color: #FFC080;
      height: 20px;
      visibility: hidden;
    }
    div.Container {
      display: inline;
      float: left;
      width: 330px;
      height: 300px;
    }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server" />
            <script type="text/javascript" language="javascript">
                var divElem = 'AlertDiv';
                var messageElem = 'AlertMessage';
                Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckStatus);
                function CheckStatus(sender, args)
                {
                  var prm = Sys.WebForms.PageRequestManager.getInstance();
                  if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'CancelRefresh') {
                     prm.abortPostBack();
                  }
                  else if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
                     args.set_cancel(true);
                     ActivateAlertDiv('visible', 'Still working on previous request.');
                 }
                  else if (!prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
                     ActivateAlertDiv('visible', 'Processing....');
                  }
                }
                function ActivateAlertDiv(visString, msg)
                {
                     var adiv = $get(divElem);
                     var aspan = $get(messageElem);
                     adiv.style.visibility = visString;
                     aspan.innerHTML = msg;
                }
            </script>
            <div class="Container" >
            <asp:UpdatePanel  ID="UpdatePanel1" UpdateMode="Conditional" runat="Server"  >
                <ContentTemplate>
                    <asp:Panel ID="Panel1" runat="server" GroupingText="UpdatePanel" 
                    CssClass="UpdatePanelStyle">
                        Last update: 
                        <%=DateTime.Now.ToString() %>.
                        <asp:Button runat="server" ID="RefreshButton" Text="Refresh"
                            OnClick="ButtonClick_Handler" />
                        <div id="AlertDiv" class="AlertStyle">
                        <span id="AlertMessage"></span> &nbsp;&nbsp;&nbsp;&nbsp;
                        <asp:LinkButton ID="CancelRefresh" runat="server">cancel</asp:LinkButton>
                        </div>                        
                    </asp:Panel>
                </ContentTemplate>
            </asp:UpdatePanel>
            </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 ButtonClick_Handler(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(3000);
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>PageRequestManager initializeRequest Example</title>
    <style type="text/css">
    body {
        font-family: Tahoma;
    }
    a  {
        text-decoration: none;
    }
    a:hover {
        text-decoration: underline;
    }
    div.UpdatePanelStyle{
       width: 300px;
       height: 300px;
    }
    div.AlertStyle {
      font-size: smaller;
      background-color: #FFC080;
      height: 20px;
      visibility: hidden;
    }
    div.Container {
      display: inline;
      float: left;
      width: 330px;
      height: 300px;
    }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server" />
            <script type="text/javascript" language="javascript">
                var divElem = 'AlertDiv';
                var messageElem = 'AlertMessage';
                Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckStatus);
                function CheckStatus(sender, args)
                {
                  var prm = Sys.WebForms.PageRequestManager.getInstance();
                  if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'CancelRefresh') {
                     prm.abortPostBack();
                  }
                  else if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
                     args.set_cancel(true);
                     ActivateAlertDiv('visible', 'Still working on previous request.');
                 }
                  else if (!prm.get_isInAsyncPostBack() & args.get_postBackElement().id == 'RefreshButton') {
                     ActivateAlertDiv('visible', 'Processing....');
                  }
                }
                function ActivateAlertDiv(visString, msg)
                {
                     var adiv = $get(divElem);
                     var aspan = $get(messageElem);
                     adiv.style.visibility = visString;
                     aspan.innerHTML = msg;
                }
            </script>
            <div class="Container" >
            <asp:UpdatePanel  ID="UpdatePanel1" UpdateMode="Conditional" runat="Server"  >
                <ContentTemplate>
                    <asp:Panel ID="Panel1" runat="server" GroupingText="UpdatePanel" 
                    CssClass="UpdatePanelStyle">
                        Last update: 
                        <%=DateTime.Now.ToString() %>.
                        <asp:Button runat="server" ID="RefreshButton" Text="Refresh"
                            OnClick="ButtonClick_Handler" />
                        <div id="AlertDiv" class="AlertStyle">
                        <span id="AlertMessage"></span> &nbsp;&nbsp;&nbsp;&nbsp;
                        <asp:LinkButton ID="CancelRefresh" runat="server">cancel</asp:LinkButton>
                        </div>                        
                    </asp:Panel>
                </ContentTemplate>
            </asp:UpdatePanel>
            </div>
        </div>
    </form>
</body>
</html>

Siehe auch

Referenz

Sys.WebForms.PageRequestManager-Klasse

Sys.WebForms.PageRequestManager beginRequest-Ereignis