当AllowSorting设置为true时,将GridView导出到Excel不起作用

本文关键字:GridView 不起作用 Excel 设置 AllowSorting true | 更新日期: 2023-09-27 18:22:09

我正在通过GridView中的ObjectDataSource显示来自Sql数据库的一些数据。我还允许用户使用以下代码将数据导出到excel:

  public override void VerifyRenderingInServerForm(Control control)
{
}

private void ExportGridToExcel()
{
    Response.Clear();
    Response.Buffer = true;
    Response.ClearContent();
    Response.ClearHeaders();
    Response.Charset = "";
    string FileName = "Results" + DateTime.Now + ".xls";
    StringWriter strwritter = new StringWriter();
    HtmlTextWriter htmltextwrtter = new HtmlTextWriter(strwritter);
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.ContentType = "application/vnd.ms-excel";
    Response.AddHeader("Content-Disposition", "attachment;filename=" + FileName);
    GridView1.GridLines = GridLines.Both;
    GridView1.HeaderStyle.Font.Bold = true;
    GridView1.RenderControl(htmltextwrtter);
    Response.Write(strwritter.ToString());
    Response.End();
}

protected void Button3_Click(object sender, EventArgs e)
{
    ExportGridToExcel();
}

一切正常。然而,当我在GridView中设置AllowSorting=true并单击导出按钮时,我会得到以下错误:system。InvalidOperationException:

RegisterForEventValidation只能在Render()期间调用;

这不是一个大问题,因为我不一定需要允许在GridView中进行排序,但我很好奇问题是什么?

当AllowSorting设置为true时,将GridView导出到Excel不起作用

将此属性添加到@Page声明:

EnableEventValidation="false"