当用gridview导出Execl的时候,会发生只能在执行Render()的过程中调用RegisterForEventValidation的错误提示。百度上查出的结果普遍都是采用以下两个方法
1.修改wet.config(不推荐)
<pages enabledEventValidation="false"></pages>
2.直接在导出Execl的页面修改,即
<%@ Page Language="C#" EnableEventValidation="false" AutoEventWireup="true" CodeFile="addHeader.aspx.cs" Inherits="style_addHeader" %>
来自MSDN关于enabledEventValidation的解释:
当 EnableEventValidation属性设置为true时, ASP.NET验证控件事件源自由控件呈现的用户界面。在回发或回调处理过程中,控件注册其在呈现过程的事件然后验证事件。 例如,如果列表控件包含一个数字的1、2 或3,在呈现页面时,如果收到指定一个数字4的回发请求, ASP.NET引发异常。 ASP.NET 中的默认情况下所有事件驱动的控件使用此功能。
如果编写在客户端的控件在运行时的客户端脚本,您可能必须使用 RegisterForEventValidation 方法以避免错误事件验证错误。