Exportieren GridView zu PDF in c#

Ich versuche zu exportieren eines gridview-Tabelle in c# als PDF-Datei. Ich habe gesucht andere Lösungen, und es scheint, dass jeder versucht, zum füllen der Tabelle aus einer SQL-Datenbank ersten. Dieser Schritt ist unnötig, da ich bereits ausgefüllt Tabelle per active directory und soforth. Derzeit mein code funktioniert, aber es ist schlicht in schwarz und weiß und sieht ziemlich langweilig aus.

Hier ist mein Aktueller code (mit iTextSharp):

    protected void ExportToPDF()
    {
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition",
         "attachment;filename=GridViewExport.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        grdvList.AllowPaging = false;
       //grdvList.DataBind();

        grdvList.RenderBeginTag(hw);
        grdvList.HeaderRow.RenderControl(hw);
        foreach (GridViewRow row in grdvList.Rows)
        {
            row.RenderControl(hw);
        }
        grdvList.FooterRow.RenderControl(hw);
        grdvList.RenderEndTag(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();
    }

Und mein gridview:

    <asp:GridView ID="grdvList" runat="server" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundField HeaderText="Name" datafield="Name" ReadOnly="True" >
            <ItemStyle Width="17.5%" />
            </asp:BoundField>
            <asp:BoundField HeaderText="Phone Ext" datafield="Phone Ext" ReadOnly="True" >
            <ItemStyle Width="11.5%" />
            </asp:BoundField>
            <asp:BoundField HeaderText="Mobile" datafield="Mobile" ReadOnly="True" >
            <ItemStyle Width="16%" />
            </asp:BoundField>
            <asp:BoundField HeaderText="Email" datafield="Email" ReadOnly="True" >
            <ItemStyle Width="47.5%" />
            </asp:BoundField>
            <asp:BoundField HeaderText="Department" DataField="Department" ReadOnly="True" >
            <ItemStyle Width="17.5%" />
            </asp:BoundField>
        </Columns>

        <alternatingrowstyle backcolor="#D6D6D6" />

    </asp:GridView>

Ich möchte noch hinzufügen, eine Grenze für alle Zellen der Tabelle, so dass jede zweite Zeile mit einem grauen hintergrund. Es funktioniert Super auf meiner Webseite, aber ich brauche es für die Arbeit in meinem PDF-Dokument als gut. Kann mir jemand helfen?



One Reply
  1. 0

    Versuchen, Alternaterowcolors in gridview in aspx wie folgt,

     1. Alternative color for Gridview rows
        </div>
        <br />
        <asp:GridView ID="GridVwRowcolorchange" runat="server" AutoGenerateColumns="False"
            Font-Names="Verdana" PageSize="5" Width="75%" BorderColor="#CCCCCC" BorderStyle="Solid"
            BorderWidth="1px">
            <AlternatingRowStyle BackColor="#BFE4FF" />
            <PagerStyle BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" />
            <HeaderStyle Height="30px" BackColor="#6DC2FF" Font-Size="15px" BorderColor="#CCCCCC"
                BorderStyle="Solid" BorderWidth="1px" />
            <RowStyle Height="20px" Font-Size="13px" BorderColor="#CCCCCC" BorderStyle="Solid"
                BorderWidth="1px" />
            <Columns>
                <asp:BoundField DataField="Emp_Name" HeaderText="Employee Name" />
                <asp:BoundField DataField="Emp_id" HeaderText="Employee ID" />
                <asp:BoundField DataField="Emp_job" HeaderText="Job title" />
                <asp:BoundField DataField="Emp_Dep" HeaderText="Department" />
            </Columns>
        </asp:GridView>

    Klicken Sie für weitere Referenz

    • Ich habe schon <alternatingrowstyle backcolor=“#D6D6D6″ /> unten auf meiner aspx wenn.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.