如何在按钮单击事件导出到Excel时获取HTTP响应

时间:2017-04-12 09:35:15

标签: c# asp.net

我正在开发RDLC报告,并在Asp.net上点击按钮导出到excel功能。下面的代码,我正在使用按钮单击我没有得到http响应请帮助我如何获得http响应 ,谢谢

    public void btnExportAll_Click(Object sender, EventArgs e)
    {
        string Name = ddl.SelectedValue;
        string Type = Productddl.SelectedValue;
        string Id =  ddl.SelectedValue;
        DateTime BD = Convert.ToDateTime(txtDate.Text);
        DataSet ds = new DataSet();
        ds = GetCashDataSource(BD, Name, Convert.ToInt32(Id), Flag);
        ReportViewer viewer = new ReportViewer();
        Warning[] warnings;
        string[] streamids;
        string mimeType;
        string encoding;
        string extension;
        string filename;
        viewer.LocalReport.ReportPath = 
        Server.MapPath("~/RDLCReports/ReportExport.rdlc");
        viewer.LocalReport.DataSources.Clear();
        viewer.LocalReport.DataSources.Add(new 
        ReportDataSource("Balance", ds.Tables[0]));
        viewer.LocalReport.DataSources.Add(new 
        ReportDataSource("Name", ds.Tables[1]));
        viewer.LocalReport.DataSources.Add(new 
        ReportDataSource("Amount", ds.Tables[2]));
        viewer.LocalReport.DataSources.Add(new ReportDataSource("Amount", 
        ds.Tables[3]));
        viewer.LocalReport.DataSources.Add(new ReportDataSource("GrandTotal", ds.Tables[4]));
        viewer.LocalReport.DataSources.Add(new ReportDataSource("Diff", ds.Tables[5]));
        viewer.LocalReport.DataSources.Add(new ReportDataSource("Name", ds.Tables[6]));
        viewer.LocalReport.EnableHyperlinks = true;
        string Code = "10,12";
        ReportParameter rp1 = new ReportParameter("BusinessDate", txtDate.Text, false);
        ReportParameter rp2 = new ReportParameter("DropDown", ddl.SelectedValue, false);
        ReportParameter rp3 = new ReportParameter("Id", Code, false);
        viewer.LocalReport.SetParameters(new ReportParameter[] { rp1, rp2, rp3 })
        byte[] bytes = viewer.LocalReport.Render(
           "Excel", null, out mimeType, out encoding,
            out extension,
           out streamids, out warnings);
        filename = string.Format("{0}.{1}", "ExportToExcel", "xls");
        Response.Buffer = true;
        Response.Clear();
        Response.ContentType = mimeType;
        Response.AddHeader("Content-Disposition", "attachment;filename=" + filename);
        try
        {
            Response.BinaryWrite(bytes);
        }
        catch (Exception ex)
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "ErrorAlert", "alert('Error while generating PDF.');", true);
            Console.WriteLine(ex.StackTrace);
        }

      Response.WriteFile(Server.MapPath("~/RDLCReports/ReportExport.rdlc"));
         Response.End();
         viewer.LocalReport.Refresh();
    }

0 个答案:

没有答案