使用HttpResponse做Execl导出后,Response.Write中写alert不好用了

司徒彦 司徒彦 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如题,使用HttpResponse做Execl导出后,由于数据量过大,加载慢,做了一个遮盖,挡住后面页面,想在数据加载完成后,在后台调用JS隐藏掉遮蔽,但是Response.Write中写alert不好用了,没有反应,请大神们帮帮忙!

protected void LinkButton1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
LoginSession model = Session["LoginSession"] as LoginSession;
string DBType = ConfigurationManager.AppSettings["DBtype"];
if (DBType == "ora")
{
ds = DbHelperOra.Query(refsql, model.getJndiName());
}
else
{
ds = DbHelperSQL.Query(refsql, model.getJndiName());
}
//Page.RegisterStartupScript("asddas", "<script>hideDiv('pop-div');</script>");
//ClientScript.RegisterStartupScript(ClientScript.GetType(), "asddas", "<script>alert('1');$(\"#mask\").remove();$(\"#pop-div\").animate({left: 0, top: 0, opacity: \"hide\" }, \"slow\");</script>");
exportToExcel(ds.Tables[0], "收集整编");
Response.Write("<script>alert('导出成功!');</script>");
}


///
/// 将DataTable导入到Excel中
///
/// 数据源
/// 目标Excel
public void exportToExcel(DataTable dt, string Title)
{
string strRealFile = HttpUtility.UrlEncode(Title, System.Text.Encoding.UTF8);
HttpResponse resp = System.Web.HttpContext.Current.Response;
string ExcelName = strRealFile + DateTime.Now.ToString("yyyyMMddHHmmss");
resp.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + ExcelName + ".xls");
string colHeaders = "", ls_item = "";
DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
int i = 0;
int cl = dt.Columns.Count;
//取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
//resp.Write("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /></head><body><table border=1><tr ");
//添加网格
resp.Write("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />" +
"<!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>123</x:Name><x:WorksheetOptions><x:Print><x:ValidPrinterInfo /></x:Print></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table><tr ");
List<int> countnum = new List<int>();
List<string> countname = new List<string>();
for (i = 0; i < cl; i++)
{
for(int k=0;k<ds1_print.Tables[0].Rows.Count;k++)
{
if (dt.Columns[i].Caption.ToString() == ds1_print.Tables[0].Rows[k]["FIELDNAME"].ToString())
{
countnum.Add(i);
countname.Add(ds1_print.Tables[0].Rows[k]["FIELDNAME"].ToString());
}
}
}
for (int k = 0; k < countname.Count; k++)
{
for (i = 0; i < dt.Columns.Count; i++)
{
if (countname[k]==dt.Columns[i].Caption.ToString())
{
string newname = ds1_print.Tables[0].Select("FIELDNAME='" + dt.Columns[i].Caption.ToString() + "'")[0]["DISPNAME"].ToString();
colHeaders += "<th>" + newname + "</th>";
}
}
}
resp.Write(colHeaders + "</tr>");
//向HTTP输出流中写入取得的数据信息
//逐行处理数据
foreach (DataRow row in myRow)
{
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
ls_item = "<tr>";

for (int k = 0; k < countname.Count; k++)
{
for (i = 0; i < cl; i++)
{

if (countname[k] == dt.Columns[i].Caption.ToString())
{
if (countname[k] == "FLH" || countname[k] == "CWRQ" || countname[k] == "PSRQ" || countname[k] == "GDRQ" || countname[k] == "PRJCODE")
{
if (i == (cl - 1))//最后一列,加n
{
ls_item += "<td>'" + row[i].ToString() + "</td></tr>";
}
else
{
ls_item += "<td>'" + row[i].ToString() + "</td>";
}
}
else
{
if (i == (cl - 1))//最后一列,加n
{
ls_item += "<td>" + row[i].ToString() + "</td></tr>";
}
else
{
ls_item += "<td>" + row[i].ToString() + "</td>";
}
}
}
}
}
resp.Write(ls_item);
}
resp.Write("</table></body></html>");
//resp.Write("<script>alert('导出成功!');</script>");
resp.End();
//Response.Write("<script>alert('导出成功!');</script>");
}
...全文

相关推荐

DataGrid导出Execl最简单方法

最简单的带出execl的方法

qqq898

excel导出工具类可用于项目中的execl表格导出

excel导出工具类可用于项目中的execl表格导出

shiliang_2006

C#代码NPOI实现的Excel导入导出.rar

C#代码NPOI实现的Excel导入导出,包含操作类、实例和类库

小蓝波

java,jsp,javascript中如何实现将统计表格保存成excel文件

WEB页面上的内容转到Excel档中,导出excel html导出excel jsp导出excel 导出excel实例

espcom

创新!高级!【日前、日内非滚动、日内滚动调度以及实时修正】考虑需求侧响应的智慧楼宇多时间尺度调度策略(Matlab代码实现)

创新!高级!【日前、日内非滚动、日内滚动调度以及实时修正】考虑需求侧响应的智慧楼宇多时间尺度调度策略(Matlab代码实现)内容概要:本文介绍了一种考虑需求侧响应的智慧楼宇多时间尺度调度策略,涵盖日前、日内非滚动、日内滚动调度以及实时修正四个阶段,旨在通过Matlab代码实现对智慧楼宇能源系统的优化管理。该策略结合需求侧响应机制,提升能源利用效率与系统运行经济性,适用于新能源背景下的智能建筑能源调度场景。; 适合人群:具备一定电力系统或能源管理基础知识,熟悉Matlab编程,从事科研或工程应用的研究人员与技术人员。; 使用场景及目标:① 实现智慧楼宇在多时间尺度下的精细化能源调度;② 探索需求侧响应在楼宇级能源管理系统中的建模与应用;③ 借助Matlab仿真平台完成调度策略的开发、测试与优化。; 阅读建议:建议读者结合Matlab代码与相关电力系统调度理论,逐步理解各调度阶段的建模逻辑,重点关注优化目标函数与约束条件的设计,同时推荐通过案例仿真验证策略的有效性。

荔枝科研社
评论 14
收藏 已收藏
分享
返回顶部
司徒彦
.NET社区 62,271 成员 668,968 内容