JQuery вне панели обновления asp.net - PullRequest
2 голосов
/ 24 июля 2010

У меня есть страница asp.net, которая использует и обновляет панель, и я включаю некоторый JavaScript с помощью тега {script src = abc.js}.Я попытался загрузить свой JavaScript, используя как $ (document) .ready и $ (window) .load.Оба запускаются при начальной загрузке, но не запускаются при обратной передаче на панели обновления.

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

Ответы [ 2 ]

3 голосов
/ 24 июля 2010

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

// Javascript
function InitializeScripts()
{
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_pageLoaded(YourJavascriptFunctionYouWantToRun);
}

PageRequestManager вызовет вашу функцию javascript при обновлении UpdatePanel.

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

См. Эту статью MSDN для получения дополнительной информации.

0 голосов
/ 10 мая 2012

Вставить эти строки в ваш тег JavaScript

function foo()
{
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
}
function endRequestHandler(sender, args)
{
    // Do your stuff
    alert('Update Panel routine is now complete');
}

Затем наденьте это на себя тег тела

<body onload="foo()">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...