在日历中突出显示所选日期

时间:2015-08-06 11:15:48

标签: c# asp.net .net vb.net

我正在从数据库中检索一些日期并将它们保存在List ListDates中(将这段代码保留下来但是我试图解决问题不应该有任何问题。)

日历会突出显示会议安排的所有日期。

用户从ASP .Net日历控件中选择日期

在DayRender活动中,我有以下代码

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
    if (ListDates != null )
    {
        if (ListDates.Contains(e.Day.Date))
        {
            e.Cell.CssClass = "highlight";
        }

        if (ListDates.Contains(Calendar1.SelectedDate))
        {
            e.Cell.CssClass = "newHighlight";
        }
}
}

因此,在页面加载时,我会从数据库中获取日期列表,并在日历控件中突出显示它们(因此用户知道那些日子有会议)。这样做的代码是

        if (ListDates.Contains(e.Day.Date))
        {
            e.Cell.CssClass = "highlight";
        }

我遇到的问题是当用户选择会议发生的日期时(因此此日期已应用css类highlight),它默认为控件颜色。

出于这个原因,我决定添加一个newHighlight css类,这样当用户选择会议安排的日期时,我想给它一个新的Css类({{1 }})。

要解决此问题,我添加了此代码

newHighlight

我遇到的问题是选择会议的日期会突出显示每个单元格(整个日历)而不仅仅是用户选择的一个单元格(当天还有会议)?

1 个答案:

答案 0 :(得分:1)

您可能只需要在第二个if中添加一个支票:

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
    if (ListDates != null )
    {
        if (ListDates.Contains(e.Day.Date))
        {
            e.Cell.CssClass = "highlight";
        }

        if (ListDates.Contains(Calendar1.SelectedDate) && e.Day.Date == Calendar1.SelectedDate)
        {
            e.Cell.CssClass = "newHighlight";
        }
    }
}