只能在执行Render() 的过程中调用 RegisterForEventValidation

将页面上的gridview导出到excel中时会遇到这样一个问题:“只能在执行 Render() 的过程中调用 RegisterForEventValidation”

 

      解决的方法有两种:

第一种:在Web.Config文件中:在<system.web></system.web>标记中添加如下代码:<不推荐>

<system.web>

<pages enableEventValidation="false"> </pages>

</system.web>

 

      第二种:在具体的.aspx页面的源代码中修改代码,如下:

<%@ Page Language="C#" Inherits=" OutputData" AutoEventWireup="true"   CodeFile=" OutputDataThree.aspx.cs" EnableEventValidation="false"%>

 

EnableEventValidation 默认值为true,它将启动事件验证。此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。

 

另外,如果页面含有一个linkbutton,并在后台创建对应的Click事件处理程序,此时想要将页面的table导出到excel时,也会报出上述同样的错误,此时解决方法有两种:

第一种:在Click事件处理中,将linkbutton的Visible设置成false

第二种:设置<@Page EnableEventValidation="false">

修改完毕后再次运行程序,又可以正确响应事件。关于出现的异常,可以认为在输出时候没有包含linkbutton,可是再提交到后台的时候却有相应的内容,前后不一致,所以在开启事件校验的情况下.NET抛出了异常。



原文地址:http://blog.csdn.net/daidailiuhome/article/details/6079211

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值