gpt4 book ai didi

c# - 回发后开始文件下载

转载 作者:太空狗 更新时间:2023-10-29 21:36:29 24 4
gpt4 key购买 nike

在我的应用程序中,我正在构建一个 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();
}

如果隐藏字段设置为 true(我在他们单击按钮构建文件时设置),则该方法作为最后一项在 Page_Load 事件中调用。

我还尝试通过 jQuery/AJAX 调用来刷新页面并开始下载,但收效甚微。我考虑过打开模态对话框并让他们单击链接开始下载,然后在模态关闭时刷新页面,但如果我找不到其他解决方案,那是最后的选择。

非常感谢任何帮助!

最佳答案

这是我前段时间做类似事情的方法:

  1. 在回发(生成数据)时,将更新后的页面发送回 GridView 中的最新数据。
  2. 添加一个小的 javascript 函数,该函数在页面完成加载并请求生成的文件时执行(类似于 window.location='fileurl';。当然只在回发时发送此 javascript 函数。

请求文件时显示页面的内容不会改变,只会弹出浏览器的保存对话框。

关于c# - 回发后开始文件下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4926409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com