2009-02-13 6 views
1

У меня есть простая функция JS, которую нужно вызвать, когда вызов AJAX преуспевает, однако у меня нет никакого контроля над вызовами AJAX, поскольку структура (DNN5) обрабатывает все что.Ajax onSuccess callback, не имея никакого контроля над вызовами ajax

Как я могу назвать свою функцию успешным AJAX?

Я использую DNN5 и jQuery, если вы не знакомы с DNN, просто предположите, что все элементы управления на странице завернуты в asp: UpdatePanel.

спасибо.

ответ

1

Я не знаком с DNN5, но с UpdatePanels. Можете ли вы подключиться к событиям клиента async postback в ASP.NET AJAX, то есть добавить обработчик событий в событие endRequest страницы PageRequestManager.

В качестве примера,

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

    prm.add_endRequest(EndRequest); 

    // runs when async postback completes. 
    function EndRequest(sender, args) 
    { 
    if (sender._postBackSettings.sourceElement.id) // the id of the element that raised the postback that is completing 
     { 
     //Do what you need to do here 
     } 
    } 

EDIT:

Думая об этом, я не уверен, будет ли это работать для вас. Это будет зависеть от того, как DNN5 выполняет вызовы AJAX в ASP.NET.

+0

ваш код, по существу, то же самое, спасибо –

0

@ Russ: только что увидел ваш ответ, я проверю его, и если он сработает, я его приму.

вскоре после публикации этого вопроса, я вспомнил, что я имел подобную проблему в моем предыдущем проекте, поэтому я вернулся и получил код оттуда:

<script type="text/javascript"> 

Sys.Net.WebRequestManager.add_completedRequest(onComplete); 


function onComplete(sender, args) { //call JS here 
} 

function pageUnload() { 
    Sys.Net.WebRequestManager.remove_completedRequest(onComplete); 
} 

</script>