我将文件下载到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 </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();
有什么建议吗?
答案 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"";");