aspx页面 GridView 生成 Excel 文件的问题……
cs代码是很普遍的代码,主要代码如下:HttpContext.Current.Response.Clear();HttpContext.Current.Response....
cs代码是很普遍的代码,主要代码如下:
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AppendHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8).ToString());
HttpContext.Current.Response.Charset = "utf-8"; //这里fileName是传入的参数
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType = "application/ms-excel";
this.GridViewID.Page.EnableViewState = false;
System.IO.StringWriter strWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htWriter = new System.Web.UI.HtmlTextWriter(strWriter);
this.gvShopsInfo.RenderControl(htWriter);
HttpContext.Current.Response.Write(strWriter.ToString());
ApplicationInstance.CompleteRequest();
无错误信息,运行正常,导出成功,可是,生成的xls文件内容却包含了aspx页面里的其他控件,就是GridView控件外的Label,Button什么的。这是什么个情况? 展开
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AppendHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8).ToString());
HttpContext.Current.Response.Charset = "utf-8"; //这里fileName是传入的参数
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType = "application/ms-excel";
this.GridViewID.Page.EnableViewState = false;
System.IO.StringWriter strWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htWriter = new System.Web.UI.HtmlTextWriter(strWriter);
this.gvShopsInfo.RenderControl(htWriter);
HttpContext.Current.Response.Write(strWriter.ToString());
ApplicationInstance.CompleteRequest();
无错误信息,运行正常,导出成功,可是,生成的xls文件内容却包含了aspx页面里的其他控件,就是GridView控件外的Label,Button什么的。这是什么个情况? 展开
1个回答
展开全部
我是提问者。
因为之前在写 HttpContext.Current.Response.End(); 事件时,系统莫名在Application_Error获取Session时报错,于是将 HttpContext.Current.Response.End(); 以 ApplicationInstance.CompleteRequest(); 替代,代码运行成功,也可以导出一个xls格式的文件了,但是却便有了我所描述的情况出现。几经尝试无法解决,在尝试着替换回 HttpContext.Current.Response.End(); 时,系统很给面子却匪夷所思的不报错了……很纠结很坑爹,还不知道究竟是怎么个原因……如果有高人的话,可以给详细解答下
因为之前在写 HttpContext.Current.Response.End(); 事件时,系统莫名在Application_Error获取Session时报错,于是将 HttpContext.Current.Response.End(); 以 ApplicationInstance.CompleteRequest(); 替代,代码运行成功,也可以导出一个xls格式的文件了,但是却便有了我所描述的情况出现。几经尝试无法解决,在尝试着替换回 HttpContext.Current.Response.End(); 时,系统很给面子却匪夷所思的不报错了……很纠结很坑爹,还不知道究竟是怎么个原因……如果有高人的话,可以给详细解答下
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询