【问题标题】:Waiting progress bar while downloading Excelfile in asp.net?在 asp.net 中下载 Excel 文件时等待进度条?
【发布时间】:2012-03-28 20:36:46
【问题描述】:

我正在调用 .ashx 文件以从母版页菜单项下载 excel 文件。但是这里给用户带来了困惑。用户不知道下载是否发生。

如何在主页面中点击菜单项时弹出进度条并在下载后自动消失?

MasterPage.Master

if e.Item.Text = "Download" Then
   Dim strUrl As String = "../Users/Download.ashx"
   ResponseHelper.Redirect(strUrl, "_black", "resizable=no, scrollbars=no")
end if

下载.ashx

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
     'Some logic
     Dim filename As String = "FullExtract_" & Now.Year.ToString & Now.Month.ToString & Now.Day.ToString & ".xlsx"
     context.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
     context.Response.AddHeader("content-disposition", "attachment;  filename=" & filename)
     context.Response.BinaryWrite(pck.GetAsByteArray())
     context.Response.End()
 End Sub

【问题讨论】:

标签: asp.net ajax vb.net


【解决方案1】:

如果它不会干扰任何现有的限制,您可以在页面中使用 jQuery's .ajax() 函数来进行 ajax 调用并将客户端通知作为该调用的一部分进行处理(粗略示例) :

// Notify the user about downloading.

// Perform the download
$.ajax({
    type: "POST",
    url: '/Users/Download.ashx',
    success: function(data) {
        // Notify the user it's done.
    }
});

【讨论】:

  • 除了 CAbbott 回复的内容外,使用带有一些嵌入动画 gif 的 div 并控制其可见性以显示正在进行或完成的操作等。
【解决方案2】:

您可以从 here

获得这个想法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多