【问题标题】:Exporting Gridview to excel asp.net not working将 Gridview 导出到 excel asp.net 不起作用
【发布时间】:2025-12-03 07:00:01
【问题描述】:

我尝试将我的 Gridview 数据导出到 excel,但是当我单击按钮时没有任何反应。 我尝试使用断点查找问题,然后它总是停在 gridData.RenderControl(htmlWrite); 那么就退出函数了

这是我的代码

            Response.Clear();

            Response.AddHeader("content-disposition", "attachment;filename = FileName.xls");
            Response.ContentType = "application/vnd.xls";
            System.IO.StringWriter stringWrite = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
            gridData.RenderControl(htmlWrite);
            Response.Write(stringWrite.ToString());

            Response.End();

更新~

我尝试使用 try catch 来查看问题所在,我发现当您在 gridview 中有按钮时,它不会继续使用 rendercontrol,因此提出的解决方案是禁用所有控件并在 rendercontrol 之前隐藏按钮它继续到下一行,但是当我到达 Response.End() 时,它返回了 thread is being aborted 的错误,所以我在网上寻找另一种解决方案,我找到 HttpContext.Current.ApplicationInstance.CompleteRequest(); 之后错误消失了,但仍然缺少 excel 输出

【问题讨论】:

标签: asp.net export-to-excel


【解决方案1】:

我找到了解决此类问题的方法,您必须将触发器放在 ContentTemplate 之外。可能是因为 UpdatePanel 与 FileUpload 不兼容。

您需要将其包含在您的代码中

    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="YourButtonID" />
    </Triggers>

【讨论】: