Saludos! estoy tratando de exportar el contenido de una gridview que genero de forma dinámica a un archivo excel con este pequeño script: 
 
Código:
     protected void cmdExportar_Click(object sender, EventArgs e)
    {
        string attachment = "attachment; filename=informe.xls";
        StringWriter sw = new StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);
        Response.ClearContent();
        Response.AddHeader("content-disposition", attachment);
        Response.ContentType = "application/ms-excel";
        this.grdInforme.RenderControl(htw);
        Response.Write(sw.ToString());
        Response.End();
    }
  Por alguna razón, al ejecutar el código y dar al botón cmdExportar, se detiene en  la línea 
this.grdInforme.RenderControl(htw); y el depurador me indica lo siguiente:  
 Cita:  +		$exception	{"El control 'grdInforme' de tipo 'GridView' debe colocarse dentro de una etiqueta de formulario con runat=server."}	System.Exception {System.Web.HttpException}
    Bueno, el formulario lo tengo propiamente creado, de la siguiente forma:  
 Código HTML:
 <form id="frm" runat="server"> 
 y la GridView también (las columnas las genero dinámicamente) :  
 Código HTML:
  <asp:GridView ID="grdInforme" runat="server" AutoGenerateColumns="false" >
            <Columns></Columns>
        </asp:GridView>  No sé que hacer, no puedo identificar el error... alguien tiene alguna sugerencia? 
Saludos!