//导出到excel
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文件。 
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
GVStaff.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();这是我的程序,用DataGrid是行的,换GridView就不行了,为什么会这样

解决方案 »

  1.   

    错误提示是:“/test”应用程序中的服务器错误。
    --------------------------------------------------------------------------------类型“GridView”的控件“GVRead”必须放在具有 runat=server 的窗体标记内。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 类型“GridView”的控件“GVRead”必须放在具有 runat=server 的窗体标记内。源错误: 
    行 322: System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
    行 323: System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
    行 324: GVRead.RenderControl(oHtmlTextWriter);
    行 325: Response.Write(oStringWriter.ToString());
    行 326: Response.End();
     源文件: d:\wwwroot\test\test\Mail\Mail.aspx.cs    行: 324 堆栈跟踪: 
    [HttpException (0x80004005): 类型“GridView”的控件“GVRead”必须放在具有 runat=server 的窗体标记内。]
       System.Web.UI.Page.VerifyRenderingInServerForm(Control control) +301
       System.Web.UI.WebControls.GridView.Render(HtmlTextWriter writer, Boolean renderPanel) +72
       System.Web.UI.WebControls.GridView.Render(HtmlTextWriter writer) +56
       System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +74
       System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +291
       System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +49
       Mail_Mail.btnExcel_Click(Object sender, EventArgs e) in d:\wwwroot\test\test\Mail\Mail.aspx.cs:324
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +96
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +116
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +31
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +32
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +72
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3838 
      

  2.   

    html代码里是这样
    <FORM>
    <ASP:GridView  RUNAT =SERVER></ASP:GridView>