【问题标题】:Highlight selected date in Calendar突出显示日历中的选定日期
【发布时间】:2015-08-06 20:07:40
【问题描述】:

我正在从数据库中检索一些日期并将它们保存在 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 类 (newHighlight)。

为了解决这个问题,我添加了这个代码

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

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

【问题讨论】:

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


    【解决方案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";
            }
        }
    }
    

    【讨论】:

    • 谢谢!!我已经敲了好几个小时了!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多