Как я могу узнать, когда вызов ASPX завершен? - PullRequest
2 голосов
/ 25 октября 2008

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

Мы пытаемся найти способ отобразить индикатор выполнения, чтобы пользователь знал, что запрашиваемый отчет создается, а затем уничтожить индикатор выполнения после завершения создания отчета.

Я пытался открыть новое окно с помощью JavaScript и пытаться отловить его при закрытии, а также пытался выполнить запрос XMLHTTPRequest, но, похоже, ничего не помогло.

У кого-нибудь есть предложения?

Ответы [ 3 ]

1 голос
/ 25 октября 2008

Есть 2 варианта:

  1. Используйте класс FileReference во Flex, чтобы программно вызвать файл aspx. Вы сможете отслеживать ход вызова изнутри Flex, слушая его события. Но пользователи могут только сохранить PDF, но не открывать его.
  2. Создайте промежуточную HTML-страницу, на которой отображается значок загрузки, а затем обновите себя до страницы ASPX, генерирующей PDF. Кодируйте ваш aspx url вместе с параметрами и т. Д. И установите его в качестве параметра для этой промежуточной страницы, чтобы он знал, что загружать.
0 голосов
/ 07 июля 2009

Еще один вариант, не упомянутый здесь, - создать веб-сервис .Net, добавить его в свой проект flex и, когда он попадет в обработчик результатов, вы знаете, что файл создается в этот момент.

0 голосов
/ 25 октября 2008

Если у вас нет контроля над страницей, чтобы иметь возможность разместить на ней JavaScript, чтобы попасть по URL-адресу (или перезвонить родителю / открывателю), то вы можете рассмотреть возможность создания собственной страницы aspx для размещения на ней. элемент управления ReportViewer и отображение отчета внутри него. Это потребует от вас создания веб-сайта .NET со страницей и web.config - вам не нужно будет ничего делать, кроме как заставить его получать какие-либо параметры, необходимые вашему отчету, и это можно будет сделать с помощью inline-to-the -aspx код, в отличие от глубоких знаний .NET.

Или вы можете нажать API-интерфейс SS-RS и отобразить отчет напрямую. Здесь вы должны создать URL-адрес с параметрами для отчета на сайте API SS-RS. Я думаю, хотя я не знаю наверняка, что интерфейс SS-RS использует сам API за кулисами. По умолчанию API размещен на сайте под названием «reportserver» - вы можете прослушивать HTTP-трафик во время обработки отчета, чтобы начать работу с URL-адресом, по которому вам нужно будет перейти.

...