当用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();
}
本文介绍了解决GridView导出Excel时出现的事件验证错误的方法。提供了两种解决方案:一是通过修改web.config禁用事件验证;二是直接在导出页面禁用并重写验证方法。同时还给出了具体的导出代码示例。
3953

被折叠的 条评论
为什么被折叠?



