0

在我的 diaryEntry 选项卡中;我有 id、siteId 和日期。我传递了一个日期,我希望列表“DiaryEntry”存储所有匹配的日期。然后我通过一个 foreach 传递这个列表,然后它应该在日历上突出显示屏幕上的日期。

 DateTime tempDate = System.Convert.ToDateTime(Session["Diary_Date"]);
        DateTime startOfMonth = new DateTime(tempDate.Year, tempDate.Month, 1);
        DateTime endOfMonth = startOfMonth.AddMonths(1).AddDays(-1);
    List<Diary_Entry> DiaryEntry = new List<Diary_Entry>();

        DiaryEntry = (from DE in db.Diary_Entries
                      where DE.Site_Id == 1
                      && DE.Date >= startOfMonth && DE.Date <= endOfMonth
                      select DE).ToList();


  foreach (DateTime d in DiaryEntry)//list is name of list you use avoue(in linq)
        {
            Calendar1.SelectedDates.Add(d);//CALENDAR 1 IS WHAT I CALLED IT IN ASPX
        }

错误:无法将类型“diaryEntry”转换为 system.datetim

有人可以建议我如何解决这个问题吗

4

3 回答 3

1

问题在这里:

foreach (DateTime d in DiaryEntry)

DiaryEntryList<Diary_Entry>,不是 的列表DateTime

改成:

foreach (Diary_Entry d in DiaryEntry)

现在对于 each d,您可以访问其DateTime成员。

于 2013-02-23T19:42:00.197 回答
1
  foreach (var d in DiaryEntry)
        {
            Calendar1.SelectedDates.Add(d.Date); //assuming d.Date is a datetime
        }
于 2013-02-23T19:42:01.547 回答
1

你的问题是你有 Diary_Entry 列表,而不是 DateTime,所以如果你想遍历 datetime 可枚举,你应该得到它。您可以使用 linq 执行此操作:

    foreach (DateTime d in DiaryEntry.Select(de=>de.Date))
    {
        Calendar1.SelectedDates.Add(d);//CALENDAR 1 IS WHAT I CALLED IT IN ASPX
    }
于 2013-02-23T19:42:24.830 回答