Alex2 101 Ответов: 1

Как установить ширину столбца для конкретного столбца в ASP.NET gridview при экспорте в pdf?


Я экспортирую gridview в PDF через itextsharp из набора данных. Я хочу, чтобы установить ширину столбца выше для конкретного столбца в asp.net GridView в то время как экспорт в PDF, как данные, с в это того, чтобы отрезать или так. Я добавил ширину столбца под данными строки, привязанными к этому конкретному столбцу.

если (электронная.Подряд.RowType == DataControlRowType.Строкаданных)
{
грдэкспорт.Колонки[9].ItemStyle.Ширина = 300;

}

Что я уже пробовал:

gridview в исходном коде
<asp:GridView ID="grdExport" runat="server" Width="100%">
                              <HeaderStyle BackColor="White" Font-Bold="true" ForeColor="Black " />

                          </asp:GridView>

под кнопкой нажмите
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();

под привязкой к данным строки
if (e.Row.RowType == DataControlRowType.DataRow)
       {
           grdExport.Columns[9].ItemStyle.Width = 1000;

       }

1 Ответов

Рейтинг:
1

vinuvasahanponniah

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