0

私は2つのグリッドビューを使用しています。最初のものはページングが有効になっており、ページごとに許可される行数は 1 です。2 番目の gridview は最初の行の値を時間範囲として取得し、gridview1 のページを変更するたびに、2 番目の GV は GV1 の値に基づいてコンテンツを自動的に変更します。

以前は、iTextSharp を使用して、グリッドビューが 1 つだけでページングが有効になっていない PDF ファイルを生成できました。しかし今、私は最初にページングを有効にして、次に両方のグリッドビューを 1 つの pdf ファイルにマージすることに苦労しています。

どうすればそれができるか知っている人はいますか?

前もって感謝します。

編集:これは、iTextSharp を使用してグリッドビューから PDF ファイルを生成するために使用するコードです。

using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
using iTextSharp.text.html.simpleparser;

StringWriter stw = new StringWriter();
HtmlTextWriter htextw = new HtmlTextWriter(stw);
gvReportes.AllowPaging = false;
gvReportes.HeaderRow.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
gvReportes.HeaderRow.Style.Add("font-size", "7.20px");
gvReportes.HeaderRow.Style.Add("color", "#284775");
gvReportes.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
gvReportes.Style.Add("font-size", "6px");
gvReportes.RenderControl(htextw);
Document document = new Document();
string path = "path.pdf";
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(path, FileMode.Create));
document.Open();
StringReader str = new StringReader(stw.ToString());
HTMLWorker htmlworker = new HTMLWorker(document);
htmlworker.Parse(str);
Response.Write(document);
document.Close();

GV1 の値「Salida」と「Llegada」が GV2 にデータを表示する時間範囲として機能することがわかるため、これがグリッドビューの表示方法です。

グリッドビュー

4

1 に答える 1

0
protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Clear(); //this clears the Response of any headers or previous output
        Response.Buffer = true; //ma
        Response.ContentType = "application/pdf";

        Response.AddHeader("content-disposition", "attachment;filename=injoin.pdf");

        Response.Cache.SetCacheability(HttpCacheability.NoCache);

        StringWriter sw = new StringWriter();

        HtmlTextWriter hw = new HtmlTextWriter(sw);

        GridView1.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();  

    }
于 2013-03-15T08:59:23.040 に答える