从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。
一旦调用了文件下载所需的response. flush()和response. close(),服务器就会停止处理并返回响应。在此之后,您就没有执行代码的选项了。
一般下载文件,尝试通过JavaScript异步调用函数,并使用window。打开文件