DataGrid中使用LinkButton导出excel出错
在将DataGrid的数据导出到excel表中时提示:类型“LinkButton”的控件“DataGrid1__ctl2_cmdDel”必须放在具有   runat=server   的窗体标记内   
 我看了LinkButton是放在DataGrid中,有runat=server   在整个窗体中也是: 
  <body   MS_POSITIONING= "GridLayout ">  
  <form   id= "Form1 "   method= "post "   runat= "server ">  
 ...   
  </form>  
  </body>  
 造成导出excel出错. 
 导出excel函数:  
 Sub   TOEXCEL()   
                         Response.Clear() 
                         Response.Buffer   =   True 
                         Response.Charset   =    "GB2312 " 
                         Response.AppendHeader( "Content-Disposition ",    "attachment;filename=FileName.xls ") 
                         Response.ContentEncoding   =   System.Text.Encoding.GetEncoding( "GB2312 ")    '设置输出流为简体中文 
                         Response.ContentType   =    "application/ms-excel "    '设置输出文件类型为excel文件。    
                         Me.EnableViewState   =   False 
                         Dim   myCItrad   As   System.Globalization.CultureInfo   =   New   System.Globalization.CultureInfo( "ZH-CN ",   True) 
                         Dim   oStringWriter   As   System.IO.StringWriter   =   New   System.IO.StringWriter(myCItrad)   
                         Dim   oHtmlTextWriter   As   System.Web.UI.HtmlTextWriter   =   New   System.Web.UI.HtmlTextWriter(oStringWriter)   
                         Me.DataGrid1.RenderControl(oHtmlTextWriter) 
                         Response.Write(oStringWriter.ToString()) 
                         Response.End() 
             End   Sub
------解决方案--------------------在页面中加上public override void VerifyRenderingInServerForm(Control control)
		{
			return false;
		}
------解决方案--------------------我遇到过,在用DataGrid或Table导出Excel的时候。   
 遇到问题的情况是:在DataGrid的里面设置某个列的类型为“按钮列”,就会出现那中情况。 
 我的方法是把按钮列改成了“超连接列”,就好使了。但如果想实现一些command,只有靠参数把条件传回来再处理了。原因分析是:超连接列是前台代码,而按钮列是后台。   
 cpp2017(慕白兄)的方法可以试验下,虽然不知道原理。
------解决方案--------------------在导出前将该列隐藏就可以了