/// <summary> /// 实现将数据导出至Excel, /// 在上面的代码中,我们首先将gridview绑定到指定的数据源中,然后在button1的按钮(用来做导出到EXCEL的)的事件中,写入相关的代码。 /// 这里使用Response.AddHeader("content-disposition","attachment;filename= exporttoexcel.xls");中的filename来指定将要导出的excel的文件名, /// 这里是exporttoexcel.xls。要注意的是,由于gridview的内容可能是分页显示的,因此,这里在每次导出excel时,先将gridview的allowpaging属性设置为 false, /// 然后通过页面流的方式导出当前页的gridview到excel中,最后再重新设置其allowpaging属性。另外要注意的是,要写一个空的VerifyRenderingInServerForm方法(必须写), /// 以确认在运行时为指定的ASP.NET 服务器控件呈现HtmlForm 控件 /// **************************************************************** /// 以下代码部份来自互联网 /// 导出数据到FileName.xls***************** /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void button1_Click(object sender, EventArgs e) { Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=FileName.xls"); Response.Charset = "gb2312"; Response.ContentType = "application/vnd.xls"; System.IO.StringWriter stringWrite = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); this.gridview1.AllowPaging = false; this.bind(); this.gridview1.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.End(); this.gridview1.AllowPaging = true; this.bind(); }
这些代码写完之后 ,导出 数据时,报错了: 只能在执行 Render() 的过程中调用 RegisterForEventValidation
于是百度,在对应的页面上,加上EnableEventValidation="false",问题 解决。
参考相关链接:http://www.ezloo.com/2008/10/render_registerforeventvalidation.html
原子中的各位亲,如果 发现 有问题,或有更高明的方法,欢迎拍砖!