私は .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();
}
このコードを実行すると、例外が発生します。
タイプ 'System.Threading.ThreadAbortException' の初回例外が mscorlib.dll で発生しました。
しかし、別のグリッドビューの別のページで同じコードを実行すると、完全に機能します。
EnableEventValidation="false"
aspx ページに移動し、
<pre lang="cs">public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}</pre>
aspx.cs ページに、
一時ファイルをクリアしようとしましたが、それでも同じエラーが発生します.5時間以上試しましたが、何も機能していません.
次に、[デバッグ] -> [例外] メニュー項目を選択してみました。表示されるダイアログで、「共通言語ランタイム例外」の最初のチェックボックスをオンにしました。
私はこのエラーが発生します:
パス「C:\Users\abcd\AppData\Local\Temp\Temporary ASP.NET Files\mark\3f229106\f785abea\App_Web_0h5ppn4m.dll」へのアクセスが拒否されました。