从asp.net后面的代码调用jquery函数不工作

本文关键字:jquery 调用 函数 工作 代码 asp net | 更新日期: 2023-09-27 18:16:26

我有一个按钮点击事件

protected void btndwnReport_Click(object sender, EventArgs e)
    {
        try
        {                
            save("Report1"); 
        }
        catch (Exception ex)
        {
            Log.Errlog("Error Occured in  btndwnReport_Clickof UI_Report Page : " + ex.Message.ToString());
        }
        finally
        {                
            Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "HideLoading", "HideLoading2();", true);//this function is not triggering
        }
    }

使用这个,我试图使用reportviewer下载excel文件。在点击这个按钮,我显示一个加载图标(通过调用ShowLoading2()),它被定义为一个jquery函数。

function ShowLoading2() {
            try {    
                if (parent.document.getElementById('dvProgress'))
                    $("#dvProgress", parent.document).hide();
            } catch (e) { }
            $("#dvProgress").show();            
        }
function HideLoading2() {
            try {
                if (parent.document.getElementById('dvProgress'))
                    $("#dvProgress", parent.document).hide();
            } catch (e) { }
            $("#dvProgress").show();
            $("#dvProgress").fadeOut(15000);
        } 

我可以下载excel格式的报告,但不能在下载excel后从代码中调用HideLoading2()函数。

当保存("Report1");方法被注释,可以调用HideLoading2()。

下面是保存方法

public void save(string ReportName)
    {
        Warning[] warnings;
        string[] streamids;
        string mimeType, encoding, extension, deviceInfo;
        string format = "Excel"; byte[] bytes = null;
        deviceInfo = "True";       
        bytes = rptViewer.ServerReport.Render("EXCEL", null, out mimeType, out encoding, out extension, out streamids, out warnings);
        Response.Buffer = false; //transmitfile self buffers
        Response.Clear();
        Response.ClearContent();
        Response.ClearHeaders();
        Response.ContentType = "GetReport/excel";            
        Response.AddHeader("Content-Disposition", "attachment; filename=" + ReportName + ".xls");
        Response.OutputStream.Write(bytes, 0, bytes.Length);
        Response.OutputStream.Flush();
        Response.OutputStream.Close();
        Response.Flush();
        Response.Close();
    }

下载excel表格后如何调用HideLoading2()函数?

注意:我没有在页面中使用scriptmanager'updatepanel。

从asp.net后面的代码调用jquery函数不工作

一旦调用了文件下载所需的response. flush()和response. close(),服务器就会停止处理并返回响应。在此之后,您就没有执行代码的选项了。

一般下载文件,尝试通过JavaScript异步调用函数,并使用window。打开文件