当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误提示。
有两种方法可以解决以上问题:
1.修改web.config(不推荐)<pages enableEventValidation ="false" ></pages>
2.直接在导出Execl的页面修改
<%@ Page Language="C#" EnableEventValidation = "false" AutoEventWireup="true"
CodeFile="ExportGridView.aspx.cs" Inherits="ExportGridView" %>
还要在后台代码重写
public override void VerifyRenderingInServerForm(Control control)
{
}
导出代码
protected void btnExcel_Click(object sender, EventArgs e)
{
dvList.AllowPaging = false;
dvList.Columns[0].Visible = false;
UpdateView();
Response.ClearContent();
Response.Charset = "UTF8";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AddHeader("content-disposition", "attachment; filename= " + HttpUtility.UrlEncode("学生信息.xls", Encoding.UTF8).ToString());
Response.ContentType = "application/excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
dvList.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}