如何隐藏UpdateProgress图像
本文关键字:UpdateProgress 图像 隐藏 何隐藏 | 更新日期: 2023-09-27 17:49:49
对于页面中的许多UpdatePanels,我有一个Ajax UpdateProgress。其中一个更新面板有一个带下载按钮的gridview。一旦用户点击按钮,"等待"的图像显示,但继续显示,即使下载完成后。
我应该如何隐藏它,一旦下载完成。
ASPX:
<asp:UpdateProgress Id="UpdateProgress1" runat="server" DisplayAter="1">
<ProgressTemplate>
<asp:Image id="imgWait" runat="server" ImageUrl="~/Images/wait.gif"/>
</ProgressTemplate>
</asp:UpdateProgress>
JS:
function HideImage()
{
$(#imgWait).hide();
}
//Also tried
//Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
//function EndRequestHandler(sender, args)
//{
// document.getElementById('<%=imgWait.ClientID%>').className = 'hidden';
//}
代码:
protected void Download(object sender, CommandEventArgs e)
{
string sFile = e.CommandArgument.ToString();
Response.Redirect("Download.Aspx?file="+sFile,false);
ScriptManager.RegisterStartupScript(this.Page,this.GetType(),
"script","HideImage();",true);
}
下载。Aspx
page_load()
{
if(!string.IsNullOrEmpty(Request.QueryString["file"]))
{
string path = Server.MapPath(Request.QueryString["file"]);
System.IO.FileInfo file = new System.IO.FileInfo(path);
if ( file.Exists )
{
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" +
file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.Flush();
Response.End();
}
}
}
您正在重定向到下载文件的页面,我认为在这种情况下屏幕并没有真正更新,因此图像保留。
您可以在同一页面上下载文件,也可以在回发后通过脚本进行重定向:
protected void Download(object sender, CommandEventArgs e)
{
string sFile = e.CommandArgument.ToString();
string script = "location.href='Download.Aspx?file=" + sFile + "';";
ScriptManager.RegisterStartupScript(this.Page,this.GetType(),
"script",script,true);
}
在本例中,不需要"HideImage()"脚本,因为回发可能会成功完成。