Completed
Last Updated: 02 Jun 2022 09:19 by ADMIN
Release 3.4.0
chesk345
Created on: 16 Aug 2021 10:26
Category: Calendar
Type: Bug Report
1
If the Min parameter excludes a whole month of the current year and you navigate to next year, you cannot navigate back to the current year from the Decade view

For example, if you want to prevent the user from selecting all dates prior to February 2021 you can set the Min parameter to new DateTime(2021, 2, 1). In this case, if you navigate to 2022 and then try to navigate back to 2021 through the Decade view, it is not possible, you can only select future year. 

Pressing the Today button works as expected.

 

===========

ADMIN EDIT

===========

Meanwhile, if you want to disable all past dates, a workaround you may try is handle the OnCellRender event of the Calendar and add a CSS class to the cells to style them as disabled. The sample below demonstrates how to achieve that.

<style>
    .not-allowed-cell {
        pointer-events: none;
        cursor: not-allowed;
        background-color: whitesmoke;
        opacity: 0.6;
    }
</style>

<TelerikCalendar @bind-Date="aDate" OnCellRender="RenderCell"></TelerikCalendar>

@code{
    DateTime aDate { get; set; } = DateTime.Now;

    void RenderCell(CalendarCellRenderEventArgs args)
    {
        switch (args.View)
        {
            case CalendarView.Month:
                if (args.Date < DateTime.Today)
                {
                    args.Class = "not-allowed-cell";
                }
                break;
            case CalendarView.Year:
                if (args.Date.Month < DateTime.Today.Month && args.Date.Year == DateTime.Today.Year)
                {
                    args.Class = "not-allowed-cell";
                }
                break;
            case CalendarView.Decade:
                if (args.Date.Year < DateTime.Today.Year)
                {
                    args.Class = "not-allowed-cell";
                }
                break;
            case CalendarView.Century:
                if (DateTime.Today.Year - args.Date.Year >= 10)
                {
                    args.Class = "not-allowed-cell";
                }
                break;
            default:
                break;
        }
    }
}

0 comments