W mojej aplikacji buduję plik zip, który użytkownik może pobrać w celu uzyskania informacji o wyeksportowanej bazie danych. Plik zip jest tworzony, gdy użytkownik kliknie przycisk "generuj dane" i loguję żądanie w bazie danych.Rozpocznij pobieranie pliku po odświeżeniu
Na mojej stronie mam widok Grid, który pokazuje historię pobierania Użytkownika, a także oferuje mu możliwość pobrania ostatnio wygenerowanego pliku przez określony czas.
Problem, który pojawia się po kliknięciu przycisku, chciałbym odświeżyć stronę (odświeżając widok siatki i pokazując ich najnowszą prośbę), a następnie rozpocząć pobieranie pliku dla nich (IE, wywołaj pytaj i pozwól im zdecydować, czy otworzyć/zapisać/anulować).
Jestem w stanie rozpocząć pobieranie z powrotem, ale mój widok Gridview nie aktualizuje się przed rozpoczęciem, więc nie pokazuje najnowszego żądania na liście. Jak mogę zaktualizować widok siatki PRZED rozpoczęciem pobierania?
Używam następujących czynności, aby rozpocząć pobieranie:
public void BeginDownload()
{
FileDownload download = InventoryService.GetLastThreeFileDownloads(this.EmployeeId).First();
FileInfo fi = new FileInfo(Server.MapPath(SERVER_DOWNLOAD_PATH) + download.DownloadFileName);
Response.Clear();
Response.ContentType = "application/zip";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fi.Name);
Response.TransmitFile(fi.FullName);
Response.Flush();
}
Metoda jest wywoływana w przypadku Page_Load jako ostatniego elementu, jeśli ukryte pole jest ustawione na true (które ustawione po kliknięciu przycisk do zbudowania pliku).
Próbowałem również zrobić to poprzez wywołania jQuery/AJAX, aby odświeżyć stronę i rozpocząć pobieranie z niewielkim sukcesem. Myślałem o otwarciu modalnego okna dialogowego i umożliwieniu im kliknięcia łącza, aby rozpocząć pobieranie, a następnie odświeżenia strony po zamknięciu modalu, ale to ostatnia deska ratunku, jeśli nie mogę znaleźć innego rozwiązania.
Każda pomoc jest bardzo doceniana!
Zbudowałem link do pobierania do widoku siatki, więc jeśli nie rozpocznie się sam lub anuluje przez pomyłkę, nadal może pobrać plik, ponieważ jest przechowywany na serwerze. Dzięki za sugestie, na pewno je przejrzę i zobaczę, które działa najlepiej. – Delebrin