public override void VerifyRenderingInServerForm(Control control) { }//必须重写的一个方法,不然不能导出
protected void Out_Click(object sender, EventArgs e)//导出按钮
{
Gridview1.Width = Unit.Empty;
//先把修改信息列和删除信息列隐藏不让他输出
Gridview1.Columns[Gridview1.Columns.Count - 1].Visible = false;
Gridview1.Columns[Gridview1.Columns.Count - 2].Visible = false;
//再把分页功能设置为false,之后再重新绑定
Gridview1.AllowPaging = false;
Query_Click(sender, null);
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");//改成utf-8就会出现乱码
curContext.Response.ContentType = "application/excel";
curContext.Response.Charset = "utf-8";
curContext.Response.ClearContent();
curContext.Response.AddHeader("content-disposition", "attachment; filename=gradeinfo.xls");
StringWriter sw = new StringWriter();
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
Gridview1.RenderControl(htw);
Gridview1.Dispose();
curContext.Response.Write(sw.ToString());
curContext.Response.End();
}
但是今天突然发现一个问题,用这个方法保存的excel在本地打开的时候windows install要提示安装vs2008(我机子上有vs2008ide),最后搞了半天还是没有解决办法。毕业设计演示系统的时候弹出这个bug多尴尬,现在又不可能重新用vba编程来实现导入excel了,太麻烦了。只好把机子上的windows install服务禁用了,将就蒙混过去了...