下载excel文件时重定向到另一个页面

时间:2015-03-18 12:54:00

标签: c# asp.net excel export-to-excel httpresponse

我试图在需要导出网格数据的页面中下载excel后隐藏进度条,但是当我点击 downloadtoexcel 按钮时它不会发生我能够看到加载图像,下载文件后,我也可以看到图像( divProgress图像),之后由于页面上的这个图像,我无法点击任何东西....

为此我已经重定向到另一个页面,就像我点击按钮一样 另一个页面将打开,我将在那里下载excel ...

但是我无法获取网格数据,而是在excel文件中获取HTML页面内容.....

这是我将网格数据导出到excel的功能

if (gvPR.Attributes["FilterQuery"].Equals(string.Empty))
{
    GridData = objCert.GetCerts(remoteUser,TotalRecords, 1, Filter);
}
else
{
    GridData = objCert.GetCerts(remoteUser,gvPR.PageSize, 1, Filter);
}
Session["OutPut"] = GridData;
ScriptManager.RegisterStartupScript(Page, typeof(Page), "OpenWindow", "window.open('/MasterPages/Default.aspx');", true);
//DatasettoExcel.Convert(GridData, Response);

以下代码用于在不同页面下载excel(Default.aspx)

protected void Page_Load(object sender, EventArgs e)
{
    Response.Clear();        
    Response.Charset = "";        
    Response.ContentType = "application/vnd.ms-excel";
    Response.AddHeader("content-disposition", "attachment; filename=Download" + System.DateTime.Now.ToString("yyyyMMddHHMMss") + ".xls");

    System.IO.StringWriter stringWrite = new System.IO.StringWriter();      
    System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite); 
    System.Web.UI.WebControls.DataGrid dg = new System.Web.UI.WebControls.DataGrid();  
    DataSet ds = Session["OutPut"] as DataSet;
    dg.DataSource = ds.Tables[0];
    dg.DataBind();
    dg.RenderControl(htmlWrite);
    Response.Write(stringWrite.ToString());
    Response.End();

  }

我不确定我在这个功能中做错了什么.... 我无法导出网格数据而不是此页面获取html内容..这是从MasterPage派生的内容页面...

任何人都可以帮我解决这个问题.. 非常感谢提前.....

1 个答案:

答案 0 :(得分:0)

添加重定向标题

Response.AddHeader("Refresh", "5; url=yourpage.html");
Response.Write(stringWrite.ToString());

延迟5秒后重定向到yourpage.html