ho risolto spostando il controllo con un bottone in una nuova pagina dove definisco solo la gridview e nella page load inserisco il seguente codice

codice:
        if (!(Page.IsPostBack))
            {
                Response.Clear();
                Response.AddHeader("content-disposition","attachment;filename=Report.xls");
                Response.Charset = "";
                Response.ContentType = "application/vnd.xls";
                System.IO.StringWriter stringWrite = new System.IO.StringWriter();
                System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
                gvexport.RenderControl(htmlWrite);
                Response.Write(stringWrite.ToString());
                Response.End();
            }
    }
    public override void VerifyRenderingInServerForm(Control aControl)
    {
    }
cliccando sul bottone il controllo viene trasferito all'altra pagina ma la gridview lì definita non si apre ma viene automaticamente travasata in un foglio excel
grazie