0
Answer

Problem While exporting gridview data to pdf?

Ask a question
selva kumar

selva kumar

10y
1.2k
1
while exporting gridview data to pdf.Header text does not displayed in pdf. Data's only displayed.can anyone help me out...
here is my code....

Html:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
                        ForeColor="#333333" GridLines="None" Width="773px">
                        <RowStyle BackColor="#E3EAEB" />
                        <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                        <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
                        <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
                        <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                        <EditRowStyle BackColor="#7C6F57" />
                        <AlternatingRowStyle BackColor="White" />
                       
                        <Columns>
                        <asp:TemplateField>
                        <ItemTemplate>
                        <asp:Label ID="lbllid" runat="server" Visible="false" Text='<%#Eval("T_ID") %>'></asp:Label>
                        </ItemTemplate>
                        </asp:TemplateField>
                       
                        <asp:TemplateField HeaderText="Serial No">
                        <ItemTemplate>
                        <%#((GridViewRow)Container).RowIndex+1 %>
                        </ItemTemplate>
                        </asp:TemplateField>
                       
                        <asp:TemplateField HeaderText="Branch">
                        <ItemTemplate>
                        <asp:Label ID="iblbranchname" runat="server" Text='<%#Eval("BranchName") %>'></asp:Label>
                        </ItemTemplate>
                        </asp:TemplateField>
                       
                        <asp:TemplateField HeaderText="Type">
                        <ItemTemplate>
                        <asp:Label ID="ibltype" runat="server" Text='<%#Eval("Type") %>'></asp:Label>
                        </ItemTemplate>
                        </asp:TemplateField>
                       
                        <asp:TemplateField HeaderText="Brand">
                        <ItemTemplate>
                        <asp:Label ID="iblbrand" runat="server" Text='<%#Eval("Brand") %>'></asp:Label>
                        </ItemTemplate>
                        </asp:TemplateField>
                       
                        <asp:TemplateField HeaderText="Received Date">
                        <ItemTemplate>
                        <asp:Label ID="iblreceiveddate" runat="server" Text='<%#Eval("ReceivedDate") %>'></asp:Label>
                        </ItemTemplate>
                        </asp:TemplateField>
                       
                        <asp:TemplateField HeaderText="Stock Received">
                        <ItemTemplate>
                        <asp:Label ID="iblstockreceived" runat="server" Text='<%#Eval("ReceivedStock") %>'></asp:Label>
                        </ItemTemplate>
                        </asp:TemplateField>
                       
                        <asp:TemplateField HeaderText="Stock On Hand">
                        <ItemTemplate>
                        <asp:Label ID="iblstockonhand" runat="server" Text='<%#Eval("StockOnHand") %>'></asp:Label>
                        </ItemTemplate>
                        </asp:TemplateField>
                       
                        <asp:TemplateField HeaderText="Sold Date">
                        <ItemTemplate>
                        <asp:Label ID="iblsolddate" runat="server" Text='<%#Eval("SoldDate") %>'></asp:Label>
                        </ItemTemplate>
                        </asp:TemplateField>
                       
                        <asp:TemplateField HeaderText="Quantity">
                        <ItemTemplate>
                        <asp:Label ID="iblquantity" runat="server" Text='<%#Eval("Quantity") %>'></asp:Label>
                        </ItemTemplate>
                        </asp:TemplateField>
                       
                        </Columns>
                    </asp:GridView>


C#;

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.IO;
using System.Net;
using iTextSharp.text;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;

public partial class Admin_SalesReport : System.Web.UI.Page
{
    SqlConnection Con;
    SqlCommand Cmd;
    SqlDataAdapter Sdap;
    protected void Page_Load(object sender, EventArgs e)
    {
        Con = new SqlConnection(@"Data Source=SMAART-1F1D3825\SQLEXPRESS;Initial Catalog=SundarTyres;Integrated Security=True");
        if (!IsPostBack)
        {
            ddl1bind();
            DropDownList2.Items.Add("<--Select-->");
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        gvbind();
        btnprint.Visible = true;
        Btndownload.Visible = true;
    }
    public override void VerifyRenderingInServerForm(Control control)
    {
        /* Verifies that the control is rendered */
    }
    protected void Btndownload_Click(object sender, EventArgs e)
    {
        using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter hw = new HtmlTextWriter(sw))
            {
                //To Export all pages
                GridView1.AllowPaging = false;
                this.gvbind();

                GridView1.RenderControl(hw);
                StringReader sr = new StringReader(sw.ToString());
                Document pdfDoc = new Document(PageSize.A2, 10f, 10f, 10f, 0f);
                HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
                PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
                pdfDoc.Open();
                htmlparser.Parse(sr);
                pdfDoc.Close();

                Response.ContentType = "application/pdf";
                Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.pdf");
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.Write(pdfDoc);
                Response.End();
            }
        }
    }
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList2.Items.Clear();
        ddl2bind();
    }
    public void ddl1bind()
    {
        try
        {
            Con.Open();
            Cmd = new SqlCommand("Select Distinct Branch From User_Roles", Con);
            SqlDataReader dr;
            dr = Cmd.ExecuteReader();
            DropDownList1.Items.Add("<--Select-->");
            while (dr.Read())
            {
                DropDownList1.Items.Add(dr["Branch"].ToString());
            }
        }
        catch
        {
        }
        finally
        {
            Con.Close();
        }
    }
    public void ddl2bind()
    {
        try
        {
            Con.Open();
            Cmd = new SqlCommand("Select SoldDate From StockManagement Where BranchName='" + DropDownList1.SelectedItem.Text + "'", Con);
            SqlDataReader dr;
            dr = Cmd.ExecuteReader();
            DropDownList2.Items.Add("<--Select-->");
            while (dr.Read())
            {
                DropDownList2.Items.Add(dr["SoldDate"].ToString());
            }
        }
        catch
        {
        }
        finally
        {
            Con.Close();
        }
    }
    public void gvbind()
    {
        try
        {
            Con.Open();
            Sdap = new SqlDataAdapter("Select * From StockManagement Where BranchName='"+DropDownList1.SelectedItem.Text+"' and SoldDate='"+DropDownList2.SelectedItem.Text+"' ", Con);
            DataTable Ds = new DataTable();
            Sdap.Fill(Ds);
            GridView1.DataSource = Ds;
            GridView1.DataBind();
        }
        catch
        {
        }
        finally
        {
            Con.Close();
        }
    }
}