我有一个带有表 (Beko) 的 SQL DB,其中每条记录都包含创建日期的日期戳(数据类型为日期)。我正在尝试填充日历控件(calBeko),以便突出显示记录存在的每一天。
我在我的页面类中声明了以下内容来保存包含记录的日期
Private days As IEnumerable(Of DateTime) = Nothing
然后,我在 Page_PreRender 事件中使用以下内容来创建包含记录的日期数组:
Dim startDate, endDate, baseDate As DateTime
If calBeko.VisibleDate.Year <> 1 Then
baseDate = calBeko.VisibleDate
Else
baseDate = DateTime.Now
End If
startDate = New DateTime(baseDate.Year, baseDate.Month, 1)
endDate = startDate.AddMonths(1).AddDays(-1)
Dim dc As New BekoDataContext
Dim days = (From Beko In dc.Bekos _
Where Beko.DateStamp <= endDate And _
Beko.DateStamp >= startDate _
Order By Beko.DateStamp _
Select New DateTime(Beko.DateStamp.Year, _
Beko.DateStamp.Month, _
Beko.DateStamp.Day) Distinct).ToArray()
然后我使用 calBeko_DayRender 事件来突出显示记录存在的日期:
For Each d In days
If d.Day = e.Day.Date.Day AndAlso _
d.Month = e.Day.Date.Month Then
e.Cell.CssClass = "ajax_calendar_checkday"
Exit For
End If
Next
问题是当我运行页面时,我在以下行收到 System.NullReferenceException:
For Each d In days
似乎没有为“天”分配任何值。我检查了表格,里面有有效的记录,所以我认为我的代码是错误的。抱歉,如果这含糊不清或我没有提供足够的信息,我对此很陌生。