Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何隐藏UpdateProgress图像_C#_Asp.net - Fatal编程技术网

C# 如何隐藏UpdateProgress图像

C# 如何隐藏UpdateProgress图像,c#,asp.net,C#,Asp.net,我有一个Ajax UpdateProgress用于页面中的许多UpdatePanel。其中一个updatepanel有一个带有下载按钮的gridview。一旦用户点击按钮,“等待”图像就会出现,但即使在下载完成后仍会继续显示 下载完成后,我应该如何隐藏它 ASPX: <asp:UpdateProgress Id="UpdateProgress1" runat="server" DisplayAter="1"> <ProgressTemplate>

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

下载完成后,我应该如何隐藏它

ASPX:

<asp:UpdateProgress Id="UpdateProgress1"  runat="server" DisplayAter="1">
    <ProgressTemplate>
        <asp:Image id="imgWait" runat="server" ImageUrl="~/Images/wait.gif"/>
    </ProgressTemplate>  
</asp:UpdateProgress>
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()”脚本,因为回发可能会成功完成。

编译器根本没有进入下载页面。因此,我在“download()”中添加了相同的代码。它说,本机框架位于调用堆栈的顶部。如果这是错误的,你能告诉我,如何在同一页上进行下载吗?
字符串脚本
行出现错误,我更新了答案,尝试一下。这很有效,但出现了一个新问题。gridview有两列,分别是view和delete,它们都有用于所有行的图标。在我点击任意一行的视图图标后,它会下载文件,但在文件下载后,网格中的所有图标都会消失。我仍然可以通过点击那个空白区域来下载文件。试着在同一个页面上进行下载,[(示例)。这是工作链接-