Класс Sys.WebForms.PageRequestManager

Управляет частичными обновлениями серверных элементов управления UpdatePanel в браузере и определяет свойства, события и методы, которые могут использоваться для настройки веб-страницы с помощью клиентского скрипта.

Пространство имен: Sys.WebForms

Наследования: отсутствуют

var prm = Sys.WebForms.PageRequestManager.getInstance();

Конструктор

Невозможно непосредственно создать новый экземпляр класса PageRequestManager. Вместо этого можно создать экземпляр при включенной частичной отрисовки страниц. Чтобы получить экземпляра класса PageRequestManager следует вызвать метод getInstance.

Члены

Имя

Описание

Конструктор Sys.WebForms.PageRequestManager

Выполняет инициализацию нового экземпляра Класс Sys.WebForms.PageRequestManager.

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

Возникает перед началом обработки асинхронной обратной передачи и отправкой запроса обратной передачи на сервер.

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

Возникает после окончания асинхронной обратной передачи и возврата элемента управления обозревателю.

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

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

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

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

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

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

Метод Sys.WebForms.PageRequestManager.abortPostBack

Останавливает все обновления, которые произошли бы в результате асинхронной обратной передачи.

Метод Sys.WebForms.PageRequestManager.beginAsyncPostBack

Начинает асинхронную обратную передачу.

Метод Sys.WebForms.PageRequestManager dispose

Высвобождает ресурсы ECMAScript (JavaScript) и отсоединяет события.

Метод Sys.WebForms.PageRequestManager getInstance

Возвращает экземпляр класса PageRequestManager для страницы.

Свойство Sys.WebForms.PageRequestManager isInAsyncPostBack

Возвращает значение, которое указывает, выполняет ли объект PageRequestManager обработку обратной передачи.

Примечание

В данном классе содержатся закрытые члены, которые предназначены для поддержки клиентских скриптов и не должны вызываться напрямую из кода приложения. Имена закрытых членов начинаются с символа подчеркивания ( _ ).

Заметки

Класс PageRequestManager управляет частичной отрисовкой страниц в обозревателе. На странице можно обновлять определенные области с помощью одного или нескольких элементов управления UpdatePanel или элемента управления ScriptManager.

Напрямую экземпляр класса PageRequestManager не создается. Класс PageRequestManager автоматически создается при включении частичной отрисовки страниц. К нему можно обращаться с помощью метода getInstance.

Класс PageRequestManager определяет события, которые можно использовать для настройки частичной отрисовки страниц. Клиентская инфраструктура поддерживает автоматическую привязку событий, наподобие автоматической привязки событий страницы на сервере к таким методам, как Page_Load. В следующей таблице приведен список доступных клиентских событий и сценариев, в которых их можно обрабатывать. События перечислены в таблице в том порядке, в котором они вызываются классом PageRequestManager.

Событие PageRequestManager

Описание

initializeRequest

Возникает перед началом обработки асинхронного запроса. Это событие используется для отмены обратной передачи.

beginRequest

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

pageLoading

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

pageLoaded

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

endRequest

Возникает после окончания асинхронной обратной передачи и возврата элемента управления обозревателю. Это событие используется для предоставления уведомления об ошибке пользователям или для ведения журнала ошибок.

Если страница содержит хотя бы один элемент управления UpdatePanel и в элементе управления ScriptManager свойство SupportsPartialRendering имеет значение true (значение по умолчанию), то для элемента управления ScriptManager регистрируется библиотека JavaScript, где содержится определение класса PageRequestManager, и она становится доступной на странице.

Пример

В следующем примере показано использование события beginRequest для отображения уведомлений о ходе выполнения во время асинхронной обратной передачи. Для получения текущего экземпляра PageRequestManager вызывается метод getInstance. В обработчики событий beginRequest и endRequest включены скрипты.


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

</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>

См. также

Ссылки

ScriptManager

UpdatePanel