私のアプリケーションでは、一部のエクスポートされたデータベース情報をダウンロードするために、ユーザーにzipファイルを作成しています。 zipファイルは、ユーザーが「データを生成」ボタンをクリックしてデータベースにリクエストを記録するときに作成されます。ポストバック後にファイルをダウンロードする
私のページには、ユーザーのダウンロード履歴を表示し、一定の期間、最新の生成ファイルをダウンロードする機能を提供する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();
}
隠しフィールドは、彼らがクリックしたときに、私が設定している(trueに設定されている場合の方法は、最後の項目として、Page_Loadイベントに呼ばれていますボタンをクリックしてファイルをビルドします)。
私はjQuery/AJAXの呼び出しでこれをやって、ページを更新してダウンロードを少しでも成功させようとしました。私はモーダルダイアログを開いて、リンクをクリックしてダウンロードを開始させ、モーダルが閉じたときにページを更新させることを考えましたが、別の解決策が見つからない場合、それは最後の手段です。
ご協力いただきありがとうございます。
私はgridviewへのダウンロードリンクを作成しました。それが単独で始まらない場合や、間違ってキャンセルした場合でも、サーバーに保存されているので、ファイルをダウンロードできます。提案してくれてありがとう、私は確かにそれらを見て、どの作品が最適かを見ていきます。 – Delebrin