Я думаю, что это может быть потому, что вы пытаетесь добавить свой GridView в новый HtmlForm, вы можете экспортировать без этого.Попробуйте следующий пример и расширьте его при необходимости:
protected void excel()
{
String dosyaadi = "Rapor.xls";
Response.Clear();
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=" + dosyaadi + ".xls");
Response.Charset = "";
Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
Также убедитесь, что в коде C # есть эта функция переопределения:
public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}