У меня есть GridView, который программно заполняется из БД (а не SqlDataSource или такой). Есть 4 столбца, которые являются TemplateFields, когда я форматирую их текст. Они даты и времени, и это один из их TemplateField:Преобразование шаблона шаблона gridview в pdf iTextSharp
<ItemTemplate>
<asp:Label ID="Label1" Text='<%# FormatDate(Eval("tDate")) %>' runat="server"></asp:Label>
</ItemTemplate>
Это функция для форматирования этой даты:
Function FormatDate(objTime As Object) As String
Dim d As String
If objTime.Equals(DBNull.Value) Then
d = ""
Else
d = Convert.ToDateTime(objTime).ToString("MM-dd-yyyy")
End If
Return d
End Function
Я использую метод, описанный в этой Post, который был преобразован на код VB от this для преобразования GridView в PDF с помощью iTextSharp.
Моя проблема заключается в том, что я получаю Null Reference исключение здесь при добавлении GridView данных в формат PDF (внутри Для Loops):
Dim lc As DataBoundLiteralControl = TryCast(gvReport.Rows(rowNo).Cells(colNo).Controls(0), DataBoundLiteralControl)
s = lc.Text.Trim()
И если я удалю это заявление, если и только запустить Остальная часть здесь:
s = gvReport.Rows(rowNo).Cells(colNo).Text.Trim()
ph = New Phrase(s, FontFactory.GetFont("Arial", ReportTextSize, iTextSharp.text.Font.NORMAL))
mainTable.AddCell(ph)
Эти столбцы «Дата/Время» отображаются как пустые в PDF, а все остальные столбцы отображаются без проблем.
Я очень потерял, как решить эту проблему, и не удалось найти решение в Интернете.