标题:以下的代码在运行时出现错误:只能在执行 Render() 的过程中调用 Reg ...
只看楼主
水晶心
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2010-7-27
结帖率:80%
已结贴  问题点数:20 回复次数:4 
以下的代码在运行时出现错误:只能在执行 Render() 的过程中调用 RegisterForEventValidation ,如何解决啊?
protected void Button4_Click(object sender, EventArgs e)//导出Excel
    {
        
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "GB2312";
            Response.AppendHeader("Content-Disposition", "attachment;filename=wasteBook" + DateTime.Now.Date.ToString("yyyyMMdd") + ".xls");
            // 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
            Response.ContentEncoding = System.Text.Encoding.UTF7;
            Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
             oStringWriter = new ();
            System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
            //  turn off paging

            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            this.GridView1.RenderControl(htw);
            string strHtml = sw.ToString().Trim();
            Response.Output.Write(strHtml);
            Response.Flush();
            Response.End();
            // turn the paging on again

      
   
 // GridView1.AllowPaging = true; //删除不用
  // GridView1.DataBind(); //删除不用


搜索更多相关主题的帖子: Render 代码 运行 
2010-08-30 11:08
qingshuiliu
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:17
帖 子:323
专家分:1538
注 册:2009-12-28
得分:3 
你给出的代码应该不是错误源
但就错误本身而言,一般有两种解决办法:
1. 设置页面指令 EnableEventValidation="false"
2. override Render方法
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            base.Render(writer);
            this.Page.ClientScript.RegisterForEventValidation(someID);
        }
2010-08-30 12:21
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
得分:3 
2010-08-30 13:52
tony_wen
Rank: 2
来 自:江西
等 级:论坛游民
帖 子:34
专家分:44
注 册:2010-8-21
得分:3 
不知道问题解决没有?我觉得应该还会出现如下错误:  //重载VerifyRenderingInServerForm方法,否则运行的时候会出现如下错误提示:“类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内”
   public override void VerifyRenderingInServerForm(Control control)
    {
        //base.VerifyRenderingInServerForm(control);
    }
2010-08-30 16:36
Issac_abc
Rank: 4
来 自:河南
等 级:业余侠客
威 望:2
帖 子:155
专家分:218
注 册:2010-6-17
得分:3 
不知道问题有没有解决,
试下 在页面改下 <%@ Page Language="C#" EnableEventValidation = "false" AutoEventWireup="true" CodeFile="GridView.aspx.cs" Inherits="GridView" %>
不知道到可以不。

2010-08-31 10:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-317174-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.102393 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved