2014-01-30 49 views
0
protected void pdf(DataTable dt, string str) 
     { 
      Document doc = new Document(iTextSharp.text.PageSize.A4, 10, 22, 34, 34); 
      PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(Request.PhysicalApplicationPath+"sdad.pdf", FileMode.Create)); 
      doc.Open(); 
      doc.Add(new Paragraph("Table")); 
      GridView dataGridview = new GridView(); 


      dataGridview.ShowHeaderWhenEmpty = true; 
      dataGridview.AllowPaging = false; 
      dataGridview.DataSource = dt; 
      dataGridview.DataBind(); 
      PdfPTable table = new PdfPTable(dataGridview.Columns.Count); 
      for (int j = 0; j < dataGridview.Columns.Count; j++) 
      { 
       table.AddCell(new Phrase(dataGridview.Columns[j].HeaderText)); 
      } 
      table.HeaderRows = 1; 
      for (int j = 0; j < dataGridview.Rows.Count;j++) 
      { 
       for (int k = 0; k < dataGridview.Columns.Count; k++) 
       { 
        if (dataGridview.Rows[j].Cells[k].Text != null) 
        { 
         table.AddCell(new Phrase(dataGridview.Rows[j].Cells[k].Text.ToString())); 
        } 
       } 
      } 
      doc.Add(table); 
      doc.Close(); 

     } 

這是使用Isharp文本創建PDF的代碼。但我得到錯誤PdfPTable構造函數中的列數必須大於零。請任何人都可以幫助解決這個錯誤。提前致謝。PdfPTable構造函數中的列數必須大於零

+0

dataGridView.Columns.Count的價值是什麼 –

+0

其實它的顯示爲零。但是我可以看到三列數據網格視圖。 – user3239173

+1

http://stackoverflow.com/questions/15324598/column-count-does-not-match-in-datatable-and-databound-datagridview –

回答

0

我都面臨着這個問題,我找到了解決辦法,你可以在你的XML添加

AutoGenerateColumns="False"ItemsSource="{Binding}(DataGrid中標記)。 那麼你必須指定dataGrid.Columns。

<DataGrid Name="grdTransaksi" HorizontalAlignment="Left"Margin="10,94,0,0" VerticalAlignment="Top" AutoGenerateColumns="False" ItemsSource="{Binding}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Tanggal" Binding="{Binding tanggal}" /> 
     <DataGridTextColumn Header="Kode Akun" Binding="{Binding KodeAkun}" /> 
    </DataGrid.Columns> 
</DataGrid> 
相關問題