Запуск JavaScript при обновлении UpdatePanel - PullRequest
3 голосов
/ 10 августа 2011

Я использую панель обновления asp.net для обновления содержимого страницы при выборе пункта меню.

В обновленном содержимом находятся изображения с функцией отражения javascript, которая запускается со следующей строкой кода:

window.onload = function () { addReflections(); }

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

В предыдущих проектах, использующих код jquery, я заменил document.ready на функцию pageLoad, но на этой странице нет document.ready.

Ответы [ 4 ]

3 голосов
/ 10 августа 2011

Как это:

<script>

        // ASP.NET AJAX on update complete   
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_endRequest(function(sender, args) {
           // your code here, eg initToolTips('/Common/images/global/popup3.gif');
        });
3 голосов
/ 10 августа 2011

По сути, это потому, что это событие не вызывается обновлением панели обновления.

Хотя есть способы добиться этого, в Ajax.Net есть функция EndRequestHandler, к которой вы можете подключиться.

Вот хороший пример:

http://zeemalik.wordpress.com/2007/11/27/how-to-call-client-side-javascript-function-after-an-updatepanel-asychronous-ajax-request-is-over/

0 голосов
/ 10 августа 2011

я думаю, что вы должны использовать

function pageLoad(sender, arg) {
    if (!arg.get_isPartialLoad()) {
        // in first load only
    }
      //every time the update panel refreshed
 }

С уважением

0 голосов
/ 10 августа 2011

Посмотрите на это событие:

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

Другими словами, вам нужно сделать это «когда запрос к серверу закончится».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...