Как я могу отложить загрузку содержимого UpdatePanel до тех пор, пока страница не отобразится?
==============================================================================================

Старая рука в ASP.NET, новая для UpdatePanel. У меня есть страница отчетов, которая выполняет довольно длинный SQL-запрос ... сейчас занимает около 10 секунд. То, что я хотел бы сделать, это сделать мою страницу полностью визуализированной, с некоторым заполнителем текста (загрузка ...), а затем заставить UpdatePanel запустить процесс создания отчетов, отнимающий много времени, и обработать отчет, когда он будет завершен.

Итак ... моя теория состоит в том, чтобы использовать RegisterStartupScript (), чтобы запустить это и удалить строку из GetPostBackEventReference (), чтобы вызвать обновление UpdatePanel. Возникают некоторые проблемы:

1) Могу ли я на самом деле использовать GetPostBackEventReference с UpdatePanel или мне нужно вызвать его каким-либо другим способом? Использовать этот метод для кнопки внутри панели обновления?

2) Какое событие вызывается, когда ссылкой обратной передачи является UpdatePanel? Это мне не понятно. Я должен позвонить где-нибудь мой код привязки данных! Опять же, может быть, мне нужно использовать кнопку внутри?

 вот как я это сделал (правильно или неправильно):

Уловка - «Скрытый Асинхронный Запуск Обратной связи».

В моем примере мне нужно было запустить асинхронную обратную передачу из конкретного события JS. Но вы можете прикрепить его к документу, готовому.

Кажется, я помню, как пробовал @Marko Ivanovski, но по какой-то причине это не сработало. Я думаю, что вам нужно указать элемент управления "возможность обратной передачи" (то есть кнопку) для запуска обратной передачи.

НТН.



)) и показ некоторых твиков и немного больше деталей, которые я счел необходимыми:

Замечания:

Скрытая кнопка жизненно важна**OnClick = параметр**это то, что определяет функцию сервера для вызова!

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

Однако я нашел это**необходимо** чтобы это не вызывалось при последующих загрузках страниц (как этоненужные циклы загрузки страницы и последующее мерцание). Смотри аккуратный маленький**IsPostBack ()** проверьте ниже :)

например Чтобы вызвать это после загрузки страницы (согласно исходному вопросу), я просто добавил вызов, чтобы вызвать вышеуказанную строку кода в качестве параметра onload для основного тега Body следующим образом:



(не испытано).

УстановитьUpdateMode из`UpdatePanel` в**условный**.

Добавьте это к вашему`<head>` раздел:



 я собрал воедино в основном первый ответ выше.

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

Мой HTML:

Мой код за фрагментами:  
В page\_load:  

И обработчик кнопки:

Это был мой тест, чтобы увидеть, смогу ли я заставить его работать. Теперь, чтобы заменить все это реальным кодом!