我是 .net 的新手,我使用以下代码从 gridview 转移到 excel:
protected void toexcelbutton_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "attendancedatereport.xls"));
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
GridView1.AllowPaging = false;
GridView1.AllowSorting = false;
GridView1.DataBind();
HtmlForm htmfrm = new HtmlForm();
GridView1.Parent.Controls.Add(htmfrm);
htmfrm.Attributes["runat"] = "server";
htmfrm.Controls.Add(GridView1);
htmfrm.RenderControl(htw);
Response.Write(sw.ToString());
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
当我运行此代码时,出现异常:
mscorlib.dll 中出现了“System.Threading.ThreadAbortException”类型的第一次机会异常。
但是,当我在另一个页面中为另一个 gridview 运行相同的代码时,它工作得很好。,我试过了,添加
EnableEventValidation="false"
到 aspx 页面,以及
<pre lang="cs">public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}</pre>
到 aspx.cs 页面,
我尝试清除临时文件,仍然出现相同的错误,我尝试了超过 5 个小时,但没有任何效果。
然后我尝试选择Debug -> Exceptions菜单项,并在出现的对话框中选中“Common Language Runtime Exceptions,
我收到此错误:
拒绝访问路径“C:\Users\abcd\AppData\Local\Temp\Temporary ASP.NET Files\mark\3f229106\f785abea\App_Web_0h5ppn4m.dll”。