我在ASP.NET中工作。我有一个gridview
,它的列2 hyperlinks
(其余为regulardatafield
)。 他们看起来像:将gridview导出为PDF时超链接字段为空
<asp:TemplateField HeaderText="Costumer">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# Eval("CUSTOMER_ID", "javascript:void(window.open('CustSubsDetailsPage.aspx?CUSTOMER_ID={0}','',' width=500, height=500, top=100, left=100'))") %>'
Text='<%# Eval("CUSTOMER_ID") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
在CS代码我只使用数据绑定,然后导出到pdf
。 一切工作正常,除了那些空的2列。
编辑这里要求是PDF文件中的代码:
protected void btnExportPDF_Click(object sender, EventArgs e)
{
GridView.AllowPaging = false;
GridView.DataBind();
iTextSharp.text.pdf.PdfPTable table = new iTextSharp.text.pdf.PdfPTable(GridView.Columns.Count);
table.WidthPercentage = 90;
table.RunDirection = PdfWriter.RUN_DIRECTION_RTL;
for (int i = 0; i < GridView.Columns.Count; i++)
{
string cellText = headers[i];
BaseFont bf = BaseFont.CreateFont("C:\\Windows\\Fonts\\Arial.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
iTextSharp.text.Font font = new iTextSharp.text.Font(bf, 6, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
iTextSharp.text.pdf.PdfPCell cell = new iTextSharp.text.pdf.PdfPCell(new Phrase(8, cellText, font));
table.AddCell(cell);
}
for (int i = 0; i < GridView.Rows.Count; i++)
{
if (GridView.Rows[i].RowType == DataControlRowType.DataRow)
{
for (int j = 0; j < GridView.Columns.Count; j++)
{
string cellText = Server.HtmlDecode(GridView.Rows[i].Cells[j].Text);
BaseFont bf = BaseFont.CreateFont("C:\\Windows\\Fonts\\Arial.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
iTextSharp.text.Font font = new iTextSharp.text.Font(bf, 6, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
iTextSharp.text.pdf.PdfPCell cell = new iTextSharp.text.pdf.PdfPCell(new Phrase(8, cellText, font));
table.AddCell(cell);
}
}
}
Document pdfDoc = new Document(PageSize.A4_LANDSCAPE, 10f, 10f, 10f, 0f);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
pdfDoc.Add(table);
pdfDoc.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;" + "filename=Dlf_Log_report_" + DateTime.Now + ".pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Write(pdfDoc);
Response.End();
}
能否请你帮我找出这个问题? 在此先感谢。
如何将'GridView'导出为PDF?你能提供解决方案的源代码吗? – 2014-11-05 09:03:38
@PavelTimoshenko我已经添加了代码 – user3710346 2014-11-05 10:49:30