导出文件时的一些问题

在C#里面做数据导出的时候,例如将GridView数据导出到excel时可能会遇到以下两种问题:

 

问题(一):类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内

可能的解决方案:

        在导出页面后台重载page的VerifyRenderingInServerForm方法,如下:

        public override void VerifyRenderingInServerForm(Control control) { }

 

问题(二):只能在执行 Render() 的过程中调用 RegisterForEventValidation

可能的解决方案:

        修改Page的EnableEventValidation属性,修改该属性也有三种方法,如下:

        方法1在Web.Config文件中:在<system.web></system.web> 标记中添加如下代码:

                  <system.web>

                          <pages enableEventValidation="false"></pages>
                      </system.web>
        方法2在具体的 .aspx 页面的源代码中修改代码:
                  <%@ Page Language="C#" EnableEventValidation="false" ... %>
        方法3在 .cs 源代码中修改 Page 属性:
                  this.Page.EnableEventValidation = false;
          EnableEventValidation 属性是 .NET Framework 2.0 中是新增的属性,默认的情况下该属性的值为 true;通过这个新增的功能 ASP.NET 会检查 POST 方法中的所带的参数,如果认为不合法,就会抛出异常。这个设计的目的是为了防止恶意用户利用post 方法发送一些恶意数据,但是有时也会出现类似上面的错误。
­
只要禁止这个功能,问题就能得到解决。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值