首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何隐藏UpdateProgress图像

如何隐藏UpdateProgress图像
EN

Stack Overflow用户
提问于 2014-03-13 09:23:22
回答 1查看 2K关注 0票数 0

我在页面中有一个Ajax UpdateProgress,用于许多UpdatePanels。其中一个updatepanel有一个带有下载按钮的网格视图。一旦用户点击按钮,“等待”图像就会显示出来,但即使在下载完成后也会继续显示。

我应该如何隐藏它,一旦下载完成。

ASPX:

代码语言:javascript
复制
<asp:UpdateProgress Id="UpdateProgress1"  runat="server" DisplayAter="1">
    <ProgressTemplate>
        <asp:Image id="imgWait" runat="server" ImageUrl="~/Images/wait.gif"/>
    </ProgressTemplate>  
</asp:UpdateProgress>

JS:

代码语言:javascript
复制
function HideImage()
{
    $(#imgWait).hide();
}
//Also tried
//Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

//function EndRequestHandler(sender, args)
//{
//   document.getElementById('<%=imgWait.ClientID%>').className = 'hidden';
//}

代码背后:

代码语言:javascript
复制
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);
}

Download.Aspx

代码语言:javascript
复制
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();
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2014-03-13 10:53:38

您正在重定向到一个下载文件的页面,我认为在这种情况下屏幕并没有真正更新,所以图像保持不变。

您可以在同一页上下载文件,也可以在回发之后通过脚本进行重定向:

代码语言:javascript
复制
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()“脚本,因为回发可能会成功完成。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22374076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档