在导出excel时报错,报错及代码如下
public void Output_Excel(System.Web.UI.Control ctl) 
    {
        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");
        HttpContext.Current.Response.Charset = "UTF-8";
        HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
        HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
        ctl.Page.EnableViewState = false;
        System.IO.StringWriter tw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw =new System.Web.UI.HtmlTextWriter(tw);
        ctl.RenderControl(hw);
        HttpContext.Current.Response.Write(tw.ToString());
        HttpContext.Current.Response.End();
    }错误提示为:类别GridView的控制项GridView1必须置于有runat=server的表单标记之中aspx原始档:
<asp:GridView ID="GridView1" runat="server" Height="171px" Width="799px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnRowDataBound="GridView1_RowDataBound">
            </asp:GridView>

解决方案 »

  1.   

    本帖最后由 net_lover 于 2012-02-13 11:09:16 编辑
      

  2.   

    是在public void Output_Excel(System.Web.UI.Control ctl) 那里加上关键子 override 
      

  3.   

     加入后下面的代码报错 
      public override void VerifyRenderingInServerForm(Control control)
        {
            base.VerifyRenderingInServerForm(control);
        }错误提示为:类别GridView的控制项GridView1必须置于有runat=server的表单标记之中
      

  4.   

    看一下你的page里面有没有<form>这个标签。要带属性runat=server