Событие Sys.WebForms.PageRequestManager beginRequest

Инициируется перед началом обработки асинхронной обратной передачи и отправкой на сервер обратного запроса.

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequestHandler)
Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(beginRequestHandler)

Термин

Определение

beginRequestHandler

Имя метода обработчика, который будет вызываться.

Событие beginRequest инициируется перед началом обработки асинхронной обратной передачи и отправкой на сервер обратного запроса. Это событие можно использовать для вызова пользовательского скрипта с целью определения обработчика запроса или запуска анимации, которая уведомит пользователя о выполнении обработки обратной передачи.

Дополнительные сведения о модели событий PageRequestManager см. в разделе Работа с событиями частичной отрисовки страницы.

В следующем примере показано, как использовать функцию beginRequest для отображения простого уведомления о ходе выполнения асинхронной обратной передачи. Элемент управления Button1 вызывает метод Thread.Sleep для имитации долго работающего процесса на сервере. Элемент управления Button2 вызывает обработчик для сервера, который ускоряет процесс. Если нажать кнопку Button2 во время выполнения вызванной по нажатию кнопки Button1 асинхронной обратной передачи, обратная передача Button1 отменяется..



<%@ 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>


Показ: