Ajax onSuccess обратного вызова, не имея никакого контроля над Ajax-вызовами - PullRequest
1 голос
/ 13 февраля 2009

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

Как мне вызвать мою функцию в случае успеха AJAX?

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

Спасибо.

Ответы [ 2 ]

1 голос
/ 13 февраля 2009

Я не знаком с DNN5, но я с UpdatePanels. Можете ли вы подключиться к событиям клиента асинхронной обратной передачи в 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 голосов
/ 13 февраля 2009

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

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

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