Asked by:
ascx grid view export to PDF

Question
-
User564383478 posted
How to export ascx page gridview display to PDF?Usning below code GrdView1 loaded data sucessfully.Now When click export button same gridview data need to export to PDF.I tried many example available in different forums but nothing works out in ascx page.
SqlDataSource1.SelectCommand = "Query"
SqlDataSource1.Select(DataSourceSelectArguments.Empty)
SqlDataSource1.DataBind()
GrdView1.DataBind()Wednesday, September 16, 2020 4:33 PM
All replies
-
User475983607 posted
Generally, a PDF API is used to generate a PDF. What PDF API are you using?
Wednesday, September 16, 2020 4:43 PM -
User1535942433 posted
Hi jula,
.I tried many example available in different forums but nothing works out in ascx page.Could you tell us where do you add the codes of export to PDF?Do you have errors?
I suggest you could use iTextSharp to fix it.Since you don't post your codes,I have created a demo for you.
Usercontrol.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="Demo.WebUserControl1" %> <asp:GridView ID="GridView1" runat="server"></asp:GridView>
Usercontrol.ascx Code-Behind:
protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)), new DataColumn("Name", typeof(string)), new DataColumn("Country",typeof(string)) }); dt.Rows.Add(1, "John Hammond", "United States"); dt.Rows.Add(2, "Mudassar Khan", "India"); dt.Rows.Add(3, "Suzanne Mathews", "France"); dt.Rows.Add(4, "Robert Schidner", "Russia"); GridView1.DataSource = dt; GridView1.DataBind(); } }
Aspx page:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="2170738.aspx.cs" Inherits="Demo._2170738" %> <%@ Register Src="WebUserControl1.ascx" TagPrefix="uc1" TagName="WebUserControl1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <uc1:WebUserControl1 runat="server" id="WebUserControl1" /> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/> </div> </form> </body> </html>
Aspx Code-Behind:
protected void Button1_Click(object sender, EventArgs e) { GridView gv = (GridView)WebUserControl1.FindControl("GridView1");
Response.AddHeader("content-disposition", "attachment;filename=Vithal_Wadje.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
gv.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
gv.AllowPaging = true;
gv.DataBind(); } public override void VerifyRenderingInServerForm(Control control) { /* Confirms that an HtmlForm control is rendered for the specified ASP.NET server control at run time. */ }More details,you could refer to below article:
https://www.c-sharpcorner.com/UploadFile/0c1bb2/export-gridview-to-pdf/
Best regards,
Yijng Sun
Thursday, September 17, 2020 5:35 AM