在asp.net中将gridview导出为pdf格式

编程入门 行业动态 更新时间:2024-10-28 06:26:15
本文介绍了在asp中将gridview导出为pdf格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

嗨专家, 我试图将Gridview数据导出为pdf格式我收到此错误无法转换类型'iTextSharp.text的对象。 html.simpleparser.CellWrapper'输入'iTextSharp.text.Paragraph'如何解决这个问题。 这是我正在使用的代码。

Hi Experts, I am trying to export the Gridview data into pdf format I am getting this error "Unable to cast object of type 'iTextSharp.text.html.simpleparser.CellWrapper' to type 'iTextSharp.text.Paragraph'" how to solve this issue. Here is the code I am using.

Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;filename=EmpDetails.pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); StringWriter sw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw); griddetails.AllowPaging = false; griddetails.DataBind(); griddetails.RenderControl(hw); griddetails.HeaderRow.Style.Add("width", "15%"); griddetails.HeaderRow.Style.Add("font-size", "10px"); griddetails.Style.Add("text-decoration", "none"); griddetails.Style.Add("font-family", "Arial, Helvetica, sans-serif;"); griddetails.Style.Add("font-size", "8px"); StringReader sr = new StringReader(sw.ToString()); iTextSharp.text.Document pdfDoc = new iTextSharp.text.Document(PageSize.A4, 7f, 7f, 7f, 0f); iTextSharp.text.html.simpleparser.HTMLWorker htmlparser = new iTextSharp.text.html.simpleparser.HTMLWorker(pdfDoc); PdfWriter.GetInstance(pdfDoc, Response.OutputStream); pdfDoc.Open(); htmlparser.Parse(sr);// Here I am getting the error pdfDoc.Close(); Response.Write(pdfDoc); Response.End();

请分享您的想法。

Kindly Share your thoughts.

推荐答案

有两个方法1)将结果导入水晶报告并导出为PDF方法2)使用任何第三方控件导出。没有直接的方法 There are two ways 1) get the result in to crystal report and export to PDF method 2) Use any third party control to export. there is no direct way

你必须在代码中进行一些更改..使用以下代码 u have to make some changes in code..use following code Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;filename=UserDetails.pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); StringWriter sw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw); gvdetails.AllowPaging = false; gvdetails.DataBind(); gvdetails.RenderBeginTag(hw); gvdetails.HeaderRow.RenderControl(hw); foreach (GridViewRow row in gvdetails.Rows) { row.RenderControl(hw); } gvdetails.FooterRow.RenderControl(hw); gvdetails.RenderEndTag(hw); gvdetails.Caption = "Your caption"; gvdetails.HeaderRow.Style.Add("width", "15%"); gvdetails.HeaderRow.Style.Add("font-size", "10px"); gvdetails.Style.Add("text-decoration", "none"); gvdetails.Style.Add("font-family", "Arial, Helvetica, sans-serif;"); gvdetails.Style.Add("font-size", "8px"); StringReader sr = new StringReader(sw.ToString()); Document pdfDoc = new Document(PageSize.A2, 7f, 7f, 7f, 0f); HTMLWorker htmlparser = new HTMLWorker(pdfDoc); PdfWriter.GetInstance(pdfDoc, Response.OutputStream); pdfDoc.Open(); htmlparser.Parse(sr); pdfDoc.Close(); Response.Write(pdfDoc); Response.End();

i参考以下链接中的答案5. stackoverflow/questions/6343630/gridview-must-be -plaed-a-form-tag-with-runat-server-even-after-the-gri [ ^ ] 或在你的代码页中添加以下代码块并使用你的代码,因为它是

i have refer answer 5 from following link. stackoverflow/questions/6343630/gridview-must-be-placed-inside-a-form-tag-with-runat-server-even-after-the-gri[^] or in ur code page add following code block and use ur code as it is

public override void VerifyRenderingInServerForm(Control control) { /* Verifies that the control is rendered */ }

试试这样: protected void imgExcel_Click(object sender,ImageClickEventArgs e) { gvEmp.AllowPaging = false; gvEmp.DataBind(); Response.ClearContent(); Response.AddHeader(Content-disposition,string.Format(attachment; filename = { 0},Emp)); Response.Charset =; Response.ContentType =application / pdf; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); gvEmp.RenderControl(htw); 回复.Write(sw.ToString()); Response.End(); } public override void VerifyRenderingInServerForm(Control control) { // base.VerifyRenderingInServerForm(control); } Try like this : protected void imgExcel_Click(object sender, ImageClickEventArgs e) { gvEmp.AllowPaging = false; gvEmp.DataBind(); Response.ClearContent(); Response.AddHeader("Content-disposition", string.Format("attachment;filename={0}", "Emp")); Response.Charset = ""; Response.ContentType = "application/pdf"; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); gvEmp.RenderControl(htw); Response.Write(sw.ToString()); Response.End(); } public override void VerifyRenderingInServerForm(Control control) { // base.VerifyRenderingInServerForm(control); }

更多推荐

在asp.net中将gridview导出为pdf格式

本文发布于:2023-06-10 16:25:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/614993.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:中将   格式   net   asp   gridview

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!