在我的應用程序中,我正在構建一個zip文件供用戶下載一些導出的數據庫信息。當用戶點擊「生成數據」按鈕並在數據庫中記錄請求時,就會創建zip文件。在回傳後啓動文件下載
在我的頁面上,我有一個Gridview,它顯示用戶的下載歷史記錄,還可以讓他們在一段時間內下載最新生成的文件。
我遇到的問題是,當他們點擊按鈕,我想刷新頁面(從而刷新gridview並顯示他們的最新請求),然後開始文件下載他們(IE,調出提示並讓他們決定是否打開/保存/取消它)。
我可以開始下載回發,但是我的Gridview在開始之前沒有更新,因此它不會在列表中顯示最新的請求。在下載提示啓動之前,如何獲取gridview進行更新?
我用下面開始下載:
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();
}
的方法是所謂的Page_Load事件作爲最後一個項目,如果隱藏字段設置爲true(當他們點擊這是我設置該按鈕來建立文件)。
我也嘗試通過jQuery/AJAX調用來刷新頁面並開始下載,但很少成功。我曾想過打開一個模式對話框,讓他們點擊一個鏈接開始下載,然後在模式關閉時刷新頁面,但如果我找不到其他解決方案,這是最後的手段。
任何幫助,非常感謝!
我確實在gridview中建立了一個下載鏈接,所以如果它不是自己啓動的,或者它們被錯誤取消,他們仍然可以下載該文件,因爲它存儲在服務器上。感謝您的建議,我一定會考慮一下,看看哪個效果最好。 – Delebrin 2011-02-07 21:03:08