阅读量:0
GridView的RenderControl方法可以用来获取控件输出的HTML。下面是一个示例代码:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { // 绑定数据到GridView BindData(); } } protected void btnExport_Click(object sender, EventArgs e) { // 获取GridView的输出HTML string html = GetGridViewHtml(gvData); // 导出HTML到文件 ExportHtmlToFile(html); } private void BindData() { // 假设从数据库获取数据 List<Person> persons = GetPersonsFromDatabase(); // 绑定数据到GridView gvData.DataSource = persons; gvData.DataBind(); } private string GetGridViewHtml(GridView gv) { // 创建一个StringBuilder对象 StringBuilder sb = new StringBuilder(); // 创建一个StringWriter对象,用于写入StringBuilder StringWriter sw = new StringWriter(sb); // 创建一个HtmlTextWriter对象,用于将GridView的输出写入StringWriter HtmlTextWriter htw = new HtmlTextWriter(sw); // 设置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) { // 设置文件保存路径 string filePath = Server.MapPath("~/ExportedHtml.html"); // 将HTML写入文件 File.WriteAllText(filePath, html); Response.Write("导出成功!"); } // 重写VerifyRenderingInServerForm方法,以便能够正确渲染GridView public override void VerifyRenderingInServerForm(Control control) { // 不执行任何操作 }
在上面的示例代码中,先绑定数据到GridView,并在点击导出按钮时调用GetGridViewHtml方法获取GridView的输出HTML。然后,调用ExportHtmlToFile方法将HTML写入文件。在GetGridViewHtml方法中,创建了一个StringBuilder对象和一个StringWriter对象,并将HtmlTextWriter对象的输出写入StringBuilder。最后,重写了VerifyRenderingInServerForm方法,以确保能正确渲染GridView。