将 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>
我尝试将我的 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>