2017-03-06 134 views
0

我想將數據從DataGridView的出口與iTextSharp的庫PDF文件iTextSharp的錯誤對象引用未設置爲一個實例對象

但是,當我點擊Export Pdf時發生此錯誤。

未將對象引用設置爲對象的實例。

線路錯誤

//fetch the header text 
cellText = Server.HtmlDecode(gvProducts.HeaderRow.Cells[colIndex].Text); 

我有這個問題只需要變量rowCountProducts等於零。

任何人都可以幫助我嗎?

在此先感謝 代碼如下。

if (rowCountProducts >= 0) 
{ 
    //link button column is excluded from the list 
    int colCount = gvProducts.Columns.Count - 1; 

    //Create a table 
    table = new PdfPTable(colCount); 
    table.HorizontalAlignment = 1; 
    table.WidthPercentage = 100; 

    //create an array to store column widths 
    int[] colWidths = new int[gvProducts.Columns.Count]; 

    PdfPCell cell; 
    string cellText; 

     //create the header row 
     for (int colIndex = 0; colIndex < colCount; colIndex++) 
     { 
      //set the column width 
      table.SetWidths(new int[] { 0, 15, 15, 20, 20, 15, 8, 12, 20, 20, 10, 12, 10, 20, 12, 10, 10, 12, 30, 8, 12, 12, 10 }); 


      //fetch the header text 
      cellText = Server.HtmlDecode(gvProducts.HeaderRow.Cells[colIndex].Text); 

      //create a new cell with header text 
      BaseFont bf = BaseFont.CreateFont(
            BaseFont.HELVETICA, 
            BaseFont.CP1252, 
            BaseFont.EMBEDDED, 
            false); 
      iTextSharp.text.Font font = new iTextSharp.text.Font(bf, 10, iTextSharp.text.Font.BOLD, BaseColor.WHITE); 
      cell = new PdfPCell(new Phrase(cellText.Replace("<br />", Environment.NewLine), font)); 
      cell.HorizontalAlignment = Element.ALIGN_CENTER; 
      cell.VerticalAlignment = Element.ALIGN_MIDDLE; 
      cell.FixedHeight = 55f; 

      //set the background color for the header cell 
      cell.BackgroundColor = new BaseColor(System.Drawing.ColorTranslator.FromHtml("#a52a2a")); 

      //add the cell to the table. we dont need to create a row and add cells to the row 
      //since we set the column count of the table to 4, it will automatically create row for 
      //every 4 cells 
      table.AddCell(cell); 
     } 

    //export rows from GridView to table 
    for (int rowIndex = 0; rowIndex < gvProducts.Rows.Count; rowIndex++) 
    { 
     if (gvProducts.Rows[rowIndex].RowType == DataControlRowType.DataRow) 
     { 
      for (int j = 0; j < gvProducts.Columns.Count - 1; j++) 
      { 
       //fetch the column value of the current row 
       cellText = Server.HtmlDecode(gvProducts.Rows[rowIndex].Cells[j].Text); 

       //create a new cell with column value 
       cell = new PdfPCell(new Phrase(cellText, FontFactory.GetFont("PrepareForExport", 8))); 
       cell.HorizontalAlignment = Element.ALIGN_CENTER; 
       cell.VerticalAlignment = Element.ALIGN_MIDDLE; 
       cell.FixedHeight = 55f; 

       string cellText2 = Server.HtmlDecode(gvProducts.Rows[rowIndex].Cells[6].Text); 

       if (cellText2.ToString() == "B") 
       { 
        cell.BackgroundColor = new BaseColor(System.Drawing.ColorTranslator.FromHtml("#f5f5dc")); 
       } 
       if (cellText2.ToString() == "L") 
       { 
        cell.BackgroundColor = new BaseColor(System.Drawing.ColorTranslator.FromHtml("#dcf5f5")); 
       } 
       if (cellText2.ToString() == "T") 
       { 
        cell.BackgroundColor = new BaseColor(System.Drawing.ColorTranslator.FromHtml("#ffe9de")); 
       } 

       //add the cell to the table 
       table.AddCell(cell); 
      } 
     } 
    } 
} 
+0

你說'cellText = Server.HtmlDecode(gvProducts.HeaderRow.Cells [colIndex] .Text);'是錯誤行。據我所見,該行上沒有引用iTextSharp類。因此,你應該把你自己的錯誤搜索和這個問題集中在其他細節上 - 像iTextSharp一樣集中一個問題,這樣可以避開那些對iTextSharp不太瞭解的人,但是可能非常關注' Server.HtmlDecode(gvProducts.HeaderRow.Cells [colIndex]。文本)'。 – mkl

回答

0

如果你的問題是,當

rowCountProducts

等於零,請試試這個。

我希望這個幫助。

//fetch the header text 
//start 
if (rowCountProducts > 0) 
{ 
    cellText = Server.HtmlDecode(gvProducts.HeaderRow.Cells[colIndex].Text); 
} 
else 
{ 
    cellText = ""; 
} 
//end 
相關問題