如何在导出到pdf时为ASP.NET gridview中的特定列设置列宽? [英] How to set column width for a particular column in ASP.NET gridview while exporting to pdf?

查看:68
本文介绍了如何在导出到pdf时为ASP.NET gridview中的特定列设置列宽?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我通过数据集中的itextsharp将gridview导出为PDF。我想在asp.net gridview中为特定列设置更高的列宽,同时导出为pdf,因为其中的数据正在被切断。我为该特定列添加了Row Data Bound下的列宽。



if(e.Row.RowType == DataControlRowType.DataRow)

{

grdExport.Columns [9] .I​​temStyle.Width = 300;



}



我尝试过:



来源中的gridview

I am exporting the gridview to PDF via itextsharp from a dataset. I want to set column width higher for a particular column in asp.net gridview while exporting to pdf as the data with in it is getting cut off or so. I added column width under Row Data Bound for that particular column.

if (e.Row.RowType == DataControlRowType.DataRow)
{
grdExport.Columns[9].ItemStyle.Width = 300;

}

What I have tried:

gridview in source

<asp:GridView ID="grdExport" runat="server" Width="100%">
                              <HeaderStyle BackColor="White" Font-Bold="true" ForeColor="Black " />

                          </asp:GridView>






under button click

grdExport.DataSource = dt;
                grdExport.DataBind();
                Response.ContentType = "application/pdf";
                Response.AddHeader("content-disposition", "attachment;   filename=" + strReportHeading.Trim() + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf");
                //Response.Cache.SetCacheability(HttpCacheability.NoCache);
                StringWriter sw = new StringWriter();
                HtmlTextWriter hw = new HtmlTextWriter(sw);
                grdExport.AllowPaging = false;
                grdExport.DataBind();
                grdExport.RenderControl(hw);
                // grdExport.HeaderStyle.Width = "1";
                // grdExport.HeaderRow.Style.Add("font-size", "10px");
                grdExport.Style.Add("text-decoration", "none");
                grdExport.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
                grdExport.Style.Add("font-size", "8px");
                //string strHead = strReportHeading + " FOR USER " + drdUserId.SelectedItem.Text.ToString();
                string strHead = strReportHeading;
                StringBuilder strbn = new StringBuilder();
                string Imagepath = Common.SITE_URL + "loginLogo.jpg";
                //strbn.Append("<div style='float:right'><img alt='' src='" + Imagepath + "'height='50px'/></div> <span style='float:right;text-align:right;font-weight:bold;'>Date:" + DateTime.Today.ToString("dd-MMM-yyyy") + "</span><div style='text-align:center;font-weight:bold;background-color:White; width:100%;font-size:20px;text-decoration:underline'> " + strHead + "</div> <br/>");
                strbn.Append("<span style='float:right;text-align:right;font-weight:bold;'>Date:" + DateTime.Today.ToString("dd-MMM-yyyy") + "</span><div style='text-align:center;font-weight:bold;background-color:White; width:100%;font-size:20px;text-decoration:underline'> " + strHead + "</div> <br/>");
                strbn.Append(sw.ToString());
                StringReader sr = new StringReader(strbn.ToString());
                Document pdfDoc = new Document(PageSize.A2, 7f, 7f, 7f, 0f);
                HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
                PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
                pdfDoc.Open();
                htmlparser.Parse(sr);
                pdfDoc.Close();
                Response.Flush();
                Response.Write(pdfDoc);
                Response.Flush();
                Response.Close();


行数据绑定下的



under row databound

if (e.Row.RowType == DataControlRowType.DataRow)
       {
           grdExport.Columns[9].ItemStyle.Width = 1000;

       }

推荐答案

StringWriter stw = new StringWriter();
HtmlTextWriter htextw = new HtmlTextWriter(stw);
grdExport.HeaderRow.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
grdExport.HeaderRow.Style.Add("font-size", "8.20px");
grdExport.HeaderRow.Style.Add("color", "#284775");
grdExport.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
grdExport.Style.Add("font-size", "8px");
grdExport.Columns[3].ItemStyle.Width =Unit.Pixel(10);
grdExport.RenderControl(htextw);
Document document = new Document(iTextSharp.text.PageSize.LETTER.Rotate(), 10, 10, 42, 35);
string path = "sample".pdf";
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(path, FileMode.Create));            
StringReader str = new StringReader(stw.ToString());
iTextSharp.text.html.simpleparser.HTMLWorker htmlworker = new HTMLWorker(document);
htmlworker.Parse(str);
Response.Write(document);
document.Close();


这篇关于如何在导出到pdf时为ASP.NET gridview中的特定列设置列宽?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆