控制項 'ctl00_center_GridView1' 必須置於 runat=server 的表單標記內。
原因:匯出程式呼叫 GridView.RenderControl 時,ASP.NET 執行階段檢查控制項是否在伺服器表單中。
public override void VerifyRenderingInServerForm(Control control)
{
// 故意留空,跳過檢查
// base.VerifyRenderingInServerForm(control);
}
將此方法加入頁面類別即可繞過驗證,順利匯出 Excel。
Response.ContentType = "application/vnd.ms-excel"。Content-Disposition: attachment; filename=Export.xls 標頭。StringWriter + HtmlTextWriter 捕獲 GridView HTML。Response.Write(html) 輸出。