各位,在弹出的模态框上,将GridView里的内容导出到Excel。怎么不好用呀!我的导出的后台代码public static void ToExcel(GridView gvExport, string fileName)
        {
            HttpContext curContext = HttpContext.Current;
            StringWriter strWriter = null;
            HtmlTextWriter htmlWriter = null;            curContext.Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
            curContext.Response.ContentType = "application/vnd.ms-excel";
            curContext.Response.ContentEncoding = Encoding.UTF7;
            strWriter = new StringWriter();
            htmlWriter = new HtmlTextWriter(strWriter);            gvExport.RenderControl(htmlWriter);
            curContext.Response.Write(strWriter.ToString());
            curContext.Response.Flush();
            //curContext.ApplicationInstance.CompleteRequest();
            curContext.Response.End();        }

解决方案 »

  1.   


           public void OutExcel(int pageIndex)
            {
                Response.Clear();
                Response.Buffer = true;
                //string filename = "attachment;filename=" + System.Web.HttpUtility.UrlEncode("报表", System.Text.Encoding.UTF8) + ".xls";
                //Response.AppendHeader("Content-Disposition", filename);            string fileName = this.Date + "列表" + ".xls";
                Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName));
                Response.Charset = "gb2312";
                EnableViewState = false;
                // 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
                //Response.ContentEncoding = System.Text.Encoding.UTF7;
                Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 
                System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
                System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
                this.DataGrid1.AllowPaging = false;            this.htxtbindState.Value = "1";
                ShowData();            this.DataGrid1.RenderControl(oHtmlTextWriter);
                Response.Output.Write(oStringWriter.ToString());
                Response.Flush();
                Response.End();            this.DataGrid1.AllowPaging = true;
                this.DataGrid1.CurrentPageIndex = pageIndex;            this.htxtbindState.Value = "0";
                ShowData();
            }请参考一下 我都用这个方法导出的
      

  2.   

       public override void VerifyRenderingInServerForm(Control control)
       {
            //base.VerifyRenderingInServerForm(control);
       }加这方法看看