将 Gridview 导出到 excel asp.net 无效

Exporting Gridview to excel asp.net not working

我尝试将我的 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 was being aborted所以我在网上寻找另一种解决方案,我发现 HttpContext.Current.ApplicationInstance.CompleteRequest(); 之后错误消失了,但 excel 输出仍然丢失

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

您需要将此包含到您的代码中

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