我正在通过 ASP.net 实现导出到 excel 的功能。我在页面上有一个按钮控件。当我单击按钮时,控件转到按钮的单击事件。在那里我调用存储过程来获取excel数据。在单击事件(代码隐藏)中,我有以下代码来下载 Excel 文件中的数据。
Response.Clear()
Response.AddHeader("content-disposition", String.Format("attachment;filename={0}.csv", "Report"))
Response.Charset = ""
Response.ContentType = "application/vnd.xls"
Response.Write("a,b,c") - sample output from SP.
Response.Flush();
所有这些工作正常。问题是 - 有时该过程需要很长时间才能执行,所以为了避免用户在下载开始之前弄乱 UI,我有一个 JavaScript 代码来在单击下载按钮时禁用 UI。这也工作正常。但我无法调用任何 javascript 代码来重新启用 UI,一旦下载开始或就在下载开始之前。当我尝试在 response.clear(在上面的代码中)之前呈现脚本并给出 response.flush 时,它给了我一个错误,即一旦将响应头发送到客户端,我就无法更改它。我怎样才能实现这个功能?
问题摘要? 我想从用户单击下载按钮到实际下载开始时禁用 UI。下载开始后,我想重新启用 UI。我怎样才能做到这一点。
谢谢。