GridView 导出数据到 EXCEL 失败 
作  者:  yyw84 (思考中...) 
等  级:   
信 誉 值:  100 
所属社区:  .NET技术 ASP.NET 
问题点数:  50 
回复次数:  11 
发表时间:  2006-1-7 16:06:34 
  
 
  

程序运行到"GridView1.RenderControl(hw); "抛出异常:Control 'ctl00_contentPlaceHolder1_GridView1' of type 'GridView' must be placed inside a form tag with runat=server.

我是将 GridView 加入到一个继承了 master 页的页面的 contentPlaceHolder1 容器控件里面的,现在问题是不知道它所说的 'ctl00_contentPlaceHolder1_GridView1' 是那一个控件,我找遍了每一处角落都没有发现,那我又该把 "runat=server" 标签添加到那里呢?

====================

HttpContext.Current.Response.Charset = "UTF-8";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType = "application/ms-excel";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename = " + "" + "日志文件" + ".xls");
GridViewLog.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
GridView1.RenderControl(hw);         // 抛出异常
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();

 
  ChengKing((http://blog.csdn.net/ChengKing)(近期较忙.E5.JiNan))) ( ) 信誉:274  2006-1-7 19:25:40  得分: 10 
 
 
  
Excel操作及其相关资源链接:
http://blog.csdn.net/ChengKing/archive/2005/11/29/539514.aspx

 
 
Top 
 exboy(kuku) ( ) 信誉:114  2006-1-7 19:43:25  得分: 10 
 
 
  
先看一下可不可以正常浏览

 
 
Top 
 yyw84(思考中...) ( ) 信誉:100  2006-1-7 22:02:41  得分: 0 
 
 
  
TO ChengKing(Enthusiasm Bigrosoft)
对VB.NET语法不是很熟悉,看起来有点累人,不过谢谢你先!

TO  exboy(kuku)
浏览是可以正常浏览的,我想主要问题是出在继承了master页的问题
不过现在是想知道'ctl00_contentPlaceHolder1_GridView1'这个控件到底是什么东西.
从名字上看有些规律: contentPlaceHolder1 为 GridView1 的父控件,但还是不知道是什么东西?

 
 
Top 
 yyw84(思考中...) ( ) 信誉:100  2006-1-8 11:06:28  得分: 0 
 
 
  
UP...

 
 
Top 
 hedongfu(何东付) ( ) 信誉:98  2006-1-8 12:03:28  得分: 10 
 
 
  
我想应该放到<form runat=server>吧,你试试

 
 
Top 
 yyw84(思考中...) ( ) 信誉:100  2006-1-8 15:28:24  得分: 0 
 
 
  
form 里面已经存在 runat=server 不过是放在 master 页上的

 
 
Top 
 ekin7913046(终结者) ( ) 信誉:94  2006-1-12 13:43:29  得分: 20 
 
 
  
1、在导出界面中重载
    public override void VerifyRenderingInServerForm(Control control)
    {
        //base.VerifyRenderingInServerForm(control);
    }
2、在web.config中修改<pages enableEventValidation ="false" ></pages>

<%@ Page Language="C#" EnableEventValidation = "false" AutoEventWireup="true"

 CodeFile="ExportGridView.aspx.cs" Inherits="ExportGridView" %>

3、现在可以正常导出了。


 
 
Top 
 yyw84(思考中...) ( ) 信誉:100  2006-1-12 20:53:27  得分: 0 
 
 
  
TO  ekin7913046(终结者)

谢谢!

 
 
Top 
 hblzg(心开风神) ( ) 信誉:100  2006-2-17 17:52:47  得分: 0 
 
 
  
把详细代码贴上来好么 ,我的还是不成功

 
 
Top 
 dafeifei(大飞飞) ( ) 信誉:100  2006-3-8 13:31:29  得分: 0 
 
 
  
有时也不要太相信。NET的报错,以上就是一个典型的Grid里含有模板列的问题。
并不是你的控件没放到runat 中

 
 
Top 
 sxnmc(浪浸斜阳) ( ) 信誉:100  2006-3-11 20:22:26  得分: 0 
 
 
   
 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐