如何在PDF文件下载后运行javascript

时间:2015-01-12 12:18:29

标签: javascript asp.net visual-studio-2010 response.redirect

我将文件下载到PDF,一切正常。我在运行该进程之前显示一个加载Image,因为从DB收集数据可能需要几秒钟或几分钟才能生成该文件。

<p>
    <asp:LinkButton Height="40" OnClientClick="showLoading();"
        OnClick="btnDownload2_Click" runat="server" CssClass="btn btn-success" ID="LinkButton1"
        Text="Click Here to Download List of Registered Students per course">
        <span style="text-align:center"> Download List&nbsp;&nbsp;&nbsp;</span>
        <img id="Img2" style="display:none" src="../../images/ajax-loader.gif" alt="Loading" />
    </asp:LinkButton>
</p>

问题是文件下载后如何将Img2更改回原始样式。如果它不是Resonse.Write,它会在按钮事件结束后自动切换到原始样式。

这是文件下载过程....(结束部分)......

Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename="+reportName+".pdf");
Response.Buffer = true;
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.BinaryWrite(bytes);
Response.End();
Response.Close();

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

只需添加一个查询字符串值来表示成功,然后在页面加载时检查它并添加一个类。

所以当文件下载完成时:

Response.Redirect("yourUrl" + "?Success=true");

然后在你的页面加载:

if (Request.QueryString["Success"] != null)
{
    LinkButton1.CssClass += " file-downloaded";
}

答案 1 :(得分:0)

你的按钮有runat服务器,btnDownload2_点击它是代码隐藏的方法,你正在回发下载。

在结束时使用相同的方法添加:

Page.RegisterStartupScript("change_image", "document.getElementById(""Img2"").src=""../../images/loader-finish.gif"";");