首页 新闻 会员 周边

AspNetExt Grid数据导出

0
悬赏园豆:10 [已关闭问题] 关闭于 2012-06-26 11:00

我做的一个导出excel功能,先将数据生成为一个excel文件保存在服务器上,再去下载该excel文件,代码执行完后出现咯一个新页面,然后就关闭咯,没有出现任何错误提示,我放在Page_Load里面是可以导出的。是怎么回事啊?大虾请指点指点啊.

源码:

 前台页面:

<ext:Button ID="btnImportToExcel" CssStyle="margin-left:5px;" Icon="ApplicationStart" runat="server" EnableAjax="false" DisableControlBeforePostBack="false" EnablePostBack="true" Text="导 出"
OnClick="btnExport_Click"></ext:Button>

后台:

 /// <summary>
    /// 导出Excel文件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnExport_Click(object sender, EventArgs e)
    {
        string imgSrc = HttpContext.Current.Server.MapPath("~/images");
        DataTable dtSoure = new DataTable();
        string field = "";
        if (ddlPointType.SelectedValue.Equals("1"))//监控点
        {
            GetField(Grid1);
            field = StrField.Replace(";", ",");
            dtSoure = SetImportQuery(Grid1.PageSize, Grid1.PageIndex, field);
            dtSoure.TableName = "监控点点位信息";
        }
        else if (ddlPointType.SelectedValue.Equals("2"))//卡口
        {
            GetField(Grid2);
            field = StrField.Replace(";", ",");
            dtSoure = SetImportQuery(Grid2.PageSize, Grid2.PageIndex, field);
            dtSoure.TableName = "卡口点位信息";
        }

       
        string[] ColumnsName = StrHeadField.ToString().Split(';');
        int[] ColumnsWidth = new int[] { };
        string[] ColumnsFormat = new string[] { };
        int[] staticsArray = new int[] { };
        string filePath = HttpContext.Current.Server.MapPath("~/AADataFile");
        string fileFull = ExcelEdit.SaveDataTableToExcel(dtSoure, filePath, ColumnsName, ColumnsWidth, ColumnsFormat, 1, staticsArray);
        string filename = fileFull;//获取用户选择的文件输出名称
        try
        {
            FileInfo file = new FileInfo(filename);//创建一个文件对象          
            Response.Clear();//清除所有缓存区的内容       
            Response.Charset = "utf-8";//定义输出字符集       
            Response.ContentEncoding = Encoding.Default;//输出内容的编码为默认编码
            Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
            Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(file.Name, System.Text.Encoding.UTF8));
            Response.AddHeader("Content-Length", file.Length.ToString());//添加头文件,指定文件的大小,让浏览器显示文件下载的速度   


            Response.WriteFile(file.FullName);// 把文件流发送到客户端
            Response.Flush();
            //删除临时文件
            System.IO.File.Delete(fileFull);

        }
        catch (Exception ex)
        {

            Page.ClientScript.RegisterStartupScript(this.GetType(), DateTime.Now.ToString(), "<script> alert('错误信息:" + ex.Message + "'); </script>");
        }
        finally
        {
            ExcelEdit.killExcelProcess();
            Response.End();//将当前所有缓冲区的输出内容发送到客户端,并停止页面的执行

        }
    }

 

   

Haydy的主页 Haydy | 初学一级 | 园豆:177
提问于:2012-06-21 15:05
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册