读书人

来啊gridview导出到excel的有关问题

发布时间: 2012-06-20 20:37:21 作者: rapoo

来高手指点啊,gridview导出到excel的问题
这是我的方法:
Response.Clear();
Response.AddHeader("Content-Type ", "application/octet-stream ");
Response.AddHeader("content-disposition", "attachment;filename=AJ_JC.xls");
Response.Charset = "UTF-8";
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

GridView1.AllowPaging = false;
GridView1.AllowSorting = false;
Bind1();
GridView1.Columns[0].Visible = false;

GridView1.RenderControl(htmlWrite);

Response.Write(stringWrite.ToString());
Response.End();
现在的问题是:
Bind1();绑定的是当前查询的数据然后导出
数据多的时候都可以成功导出,少的时候导出框就会一闪而过(我的gridview设置的是一页显示10条数据,基本查询的数据达到三页才可以导出,否则就是一闪而过,偶尔点导出按钮点个几十次能停留一次。。。让我狂⊙⊙b汗)

我试了试,如果去掉Response.End();就没这个问题了,但是如果去掉Response.End();的话整个页面连textbox和button按钮就一块导出了特别难看

在线跪求解决办法



[解决办法]
Response.ContentType = "application/ms-excel";

记得禁用下ViewState
[解决办法]
Response.Write(stringWrite.ToString());
Response.Flush();
Response.End();
[解决办法]
GridView1.AllowPaging = false;在这句前面加上GridView1.EnableViewState=false;

另外网上很多ASP.NET 导出EXCEL的例子你直接复制就可以用的
[解决办法]
Flush了么

读书人网 >asp.net

热点推荐