ASP.Net: необходимо запустить javascript при загрузке панели обновления.

Мне нужно запустить javascript-функцию, когда панель обновления полностью загружена (я хочу прокручивать), а не при загрузке начальной страницы.

Просьба предложить.

Спасибо

Ответ 1

Это способ получить конечное событие после обновления.

<script type="text/javascript">
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_endRequest(EndRequest);

    function EndRequest(sender, args) {
    }
</script>

Ответ 2

Непроверено

<script type="text/javascript">
  var app = Sys.Application;
  app.add_init(ApplicationInit);

  function ApplicationInit(sender) {
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    if (!prm.get_isInAsyncPostBack())
    {
        prm.add_pageLoaded(PageLoaded);
    }
  }

  function PageLoaded(sender, args) {
    //Do something
  }

</script>

Ответ 3

Если вы используете AJAX, то единственный способ, который я нашел, чтобы дать предупреждение пользователю, возвращающемуся к сообщению Asynchronous, заключается в добавлении обработчика "end request" к PageRequestManager.

Таким образом, вы можете сообщить менеджеру запроса запустить функцию javascript при возврате из асинхронного события после AJAX.

Код для этого:

function load()

{
   Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}

где "EndRequestHandler" будет именем вашей функции javascript, которую вы хотите вызвать. Вызвать вышеуказанную функцию в событии Onload тега:

<body onload="load()">

function EndRequestHandler()

{

          alert("You record has been saved successfully");

}

Теперь Если вы хотите дать другое сообщение на основе вашей логики в коде на стороне сервера (код позади), вы можете использовать серверную сторону. Скрытое поле:

<input id="hdnValue" type="hidden" runat="server"  value="" />

Задайте его значение на стороне сервера на Asychronous Post Back:

Защищенный Sub btn_Click (отправитель ByVal как объект, ByVal e As System.EventArgs) Обрабатывает btnCreateSample.Click

    If condition Then

    hdnValue.value = "do this"

    Else     

    hdnValue.value = "do that" 

    End If 

End Sub

Теперь вы можете проверить значение этого скрытого поля в своей клиентской стороне EndRequestHandler и дать другое предупреждение пользователю на основе его значения:

function EndRequestHandler()
{
     if (document.getElementById(‘<%= hdnValue.ClientID %>’).value == "do this")

     { 
          alert("You record has been saved successfully");
     } 
     else
     {
          alert("There is an error");
     }
 }

Ответ 4

вы можете использовать код ниже, если используется jquery

Это будет показано сохраненное сообщение и скрыть это сообщение через 5 секунд после обновления панели обновления.

function pageLoad() {
            window.Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
        }
        function EndRequestHandler()
        {
            window.setTimeout(function () {
                var label = window.$get('<%= lblMsg.ClientID%>');
                if (label != null) { label.style.display = 'none'; }
            }, 5000);
        }