1

チェンナイのアルンです。Gridview から PDF にデータをエクスポートするプロジェクトを行っています。すべて問題なく、PDF 画像をクリックするたびに新しい PDF ドキュメントが開かれましたが、そこにはレコードが表示されませんでした。

Gridview に 15 のレコードがあり、これらのレコードは Table Adapter を使用して表示されています。Gridview で Sand and Sky Auto Formatting オプションを使用すると、色、テーブルセルの幅、15 行がテキストなしで PDF に完全に表示されます。

何が欠けているのか教えてください。

ありがとうございました。

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.IO;
using System.Text;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Export2PDF.DAL.DataSet1TableAdapters;
using iTextSharp.text;
using iTextSharp.text.html;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;


namespace Export2PDF
{
    public partial class _Default : System.Web.UI.Page
    {

        DataTable1TableAdapter ds1 = new DataTable1TableAdapter();

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void ShowGridView(object sender, EventArgs e)
        {
            Bindgrid();
        }

        public void Bindgrid()
        {
            gv1.DataSource = ds1.BatchStatusByBatches(Convert.ToDateTime(TextBox1.Text), Label1.Text);
            gv1.DataBind();
        }

        protected void gv1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gv1.PageIndex = e.NewPageIndex;
            Bindgrid();
        }

        public override void VerifyRenderingInServerForm(Control control)
        {

        }

        protected void PDFExportButton_Click(object sender, EventArgs e)
        {
            Response.Clear();
            Response.Buffer = true;
            Response.ContentType = "application/pdf";
            Response.AddHeader("content-disposition", "attachment;filename=ExportToPDF.pdf");
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            StringWriter sw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(sw);
            gv1.AllowPaging = false;
            gv1.DataSource = ds1.BatchStatusByBatches(Convert.ToDateTime(TextBox1.Text), Label1.Text);
            gv1.DataBind();
            gv1.RenderControl(hw);
            gv1.HeaderRow.Style.Add("width", "15%");
            gv1.HeaderRow.Style.Add("font-size", "10px");
            gv1.Style.Add("text-decoration", "none");
            gv1.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
            gv1.Style.Add("font-size", "8px");
            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();
            Response.Clear();
        }

    }
}
4

1 に答える 1

0

以下をフォームに追加してみてください。

public override void VerifyRenderingInServerForm(Control control)
{
   // Confirms that an HtmlForm control is rendered for the
   // specified ASP.NET server control at run time.
   // No code required here.
}

ソース: http://forums.asp.net/t/1047688.aspx/1

于 2013-04-01T06:41:49.170 に答える