AJAX UpdateProgress не работает на сервере? - PullRequest
0 голосов
/ 06 августа 2010

Я пытаюсь показать анимированное изображение, когда данные загружаются в gridview после нажатия кнопки.Он отлично работает на локальном хосте, но когда я его развернул, это не так.Я просматривал посты, и я не сделал ничего из того, что кажется наиболее распространенными ошибками ... т.е.размещение updateprogress внутри updatepanel и т. д. Однако я использую masterpage - но masterpage не имеет scriptmanager.Я заметил следующее различие в моих исходных страницах просмотра, когда я сравниваю производство с localhost. Может кто-нибудь помочь мне понять, почему JavaScript для выполнения этой работы может не отображаться в работе?

Вкл. localhost (где это работает) Я вижу это внизу страницы:

[CDATA[
Sys.Application.initialize();
Sys.Application.add_init(function() {
    $create(Sys.UI._UpdateProgress, {"associatedUpdatePanelId":null,"displayAfter":500,"dynamicLayout":true}, null, null, $get("ctl00_ContentPlaceHolder1_UpdateProgress1"));
});

В производство (где это НЕ работает), это все, что я вижу:

Sys.Application.initialize();

Ответы [ 2 ]

0 голосов
/ 08 октября 2010

Возможно, это не идеальное решение, но вы можете показать () или скрыть () анимированное изображение, просто используя JavaScript.Использование следующих функций javascript (и избавление от элемента управления UpdateProgress) должно помочь.

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest); 
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest); 

 function beginRequest(sender, args) {
  document.getElementById('myImageElement').style.display = 'block';  
}

 function endRequest(sender, args) {
  document.getElementById('myImageElement').style.display = 'none';  
}

Имейте в виду, что это будет происходить при каждой обратной передаче, вам может потребоваться использовать параметр sender, чтобы определить, какой элементвызывается обратным вызовом и выполняет отображение только при нажатии правильной панели обновления.Эти события запускаются в начале и в конце (соответственно) каждой обратной передачи UpdatePanel.Удачи.

0 голосов
/ 08 октября 2010

Мне было очень тяжело после преобразования моего проекта из VS2008 в VS2010. UpdateProgress внезапно перестал работать, что было хорошо в VS2008. Потратив целый день на поиск ответа и экспериментируя с этим и с этим, я, наконец, обнаружил, что пошло не так из сообщения Скотта Гу

Это была автоматически сгенерированная запись web.config 'xhtmlConformance mode = "Legacy"'.

После отключения это снова заработало. Может быть, не для вас, но только для парней, борющихся с той же проблемой.

Счастливое кодирование

...