GridView的RenderControl方法可以用來獲取控件輸出的HTML。下面是一個示例代碼:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// 綁定數(shù)據(jù)到GridView
BindData();
}
}
protected void btnExport_Click(object sender, EventArgs e)
{
// 獲取GridView的輸出HTML
string html = GetGridViewHtml(gvData);
// 導(dǎo)出HTML到文件
ExportHtmlToFile(html);
}
private void BindData()
{
// 假設(shè)從數(shù)據(jù)庫獲取數(shù)據(jù)
List<Person> persons = GetPersonsFromDatabase();
// 綁定數(shù)據(jù)到GridView
gvData.DataSource = persons;
gvData.DataBind();
}
private string GetGridViewHtml(GridView gv)
{
// 創(chuàng)建一個StringBuilder對象
StringBuilder sb = new StringBuilder();
// 創(chuàng)建一個StringWriter對象,用于寫入StringBuilder
StringWriter sw = new StringWriter(sb);
// 創(chuàng)建一個HtmlTextWriter對象,用于將GridView的輸出寫入StringWriter
HtmlTextWriter htw = new HtmlTextWriter(sw);
// 設(shè)置GridView的樣式
gv.Style.Add("font-size", "12px");
gv.Style.Add("text-align", "center");
// 渲染GridView的輸出
gv.RenderControl(htw);
// 返回GridView的輸出HTML
return sb.ToString();
}
private void ExportHtmlToFile(string html)
{
// 設(shè)置文件保存路徑
string filePath = Server.MapPath("~/ExportedHtml.html");
// 將HTML寫入文件
File.WriteAllText(filePath, html);
Response.Write("導(dǎo)出成功!");
}
// 重寫VerifyRenderingInServerForm方法,以便能夠正確渲染GridView
public override void VerifyRenderingInServerForm(Control control)
{
// 不執(zhí)行任何操作
}
在上面的示例代碼中,先綁定數(shù)據(jù)到GridView,并在點(diǎn)擊導(dǎo)出按鈕時調(diào)用GetGridViewHtml方法獲取GridView的輸出HTML。然后,調(diào)用ExportHtmlToFile方法將HTML寫入文件。在GetGridViewHtml方法中,創(chuàng)建了一個StringBuilder對象和一個StringWriter對象,并將HtmlTextWriter對象的輸出寫入StringBuilder。最后,重寫了VerifyRenderingInServerForm方法,以確保能正確渲染GridView。