Back to Devexpress

DxDateEdit<T>.DayCellTemplate Property

blazor-devexpress-dot-blazor-dot-dxdateedit-1-de3ac743.md

latest4.3 KB
Original Source

DxDateEdit<T>.DayCellTemplate Property

Specifies the template used to display day cells.

Namespace : DevExpress.Blazor

Assembly : DevExpress.Blazor.v25.2.dll

NuGet Package : DevExpress.Blazor

Declaration

csharp
[Parameter]
public RenderFragment<DateTime> DayCellTemplate { get; set; }

Property Value

TypeDescription
RenderFragment<DateTime>

The template content.

|

Remarks

The DayCellTemplate property allows you to customize content and styles of cells in the Date Edit’s calendar. Use the template’s context parameter to access the current date-time object and its settings.

The following code snippet applies different styles to different dates.

razor
<DxDateEdit @bind-Date="@DateTimeValue"
                SizeMode="Params.SizeMode"
                CssClass="cw-320"
                InputId="deHighlightDates">
        <DayCellTemplate>
            <a class="@GetCssClassNames(context)">@context.Day.ToString()</a>
        </DayCellTemplate>
    </DxDateEdit>
    @* ... *@
@code {
    DateTime DateTimeValue { get; set; } = DateTime.Today;
    CalendarData Data { get; set; } = new CalendarData();

    string GetCssClassNames(DateTime date) {
        if(Data.PersonalDays.Exists(d => DaysEqual(d, date)))
            return "fw-bold text-success";
        if(Data.Holidays.Exists(d => DaysEqual(d, date)))
            return "text-danger";
        if(Data.BirthDates.Exists(d => DaysEqual(d, date)))
            return "fw-bold text-info";

        return null;
    }
    bool DaysEqual(DateTime date1, DateTime date2) {
        return (date1.Year == date2.Year && date1.DayOfYear == date2.DayOfYear);
    }
}
csharp
using System;
using System.Collections.Generic;

namespace BlazorDemo.Data {
    class CalendarData {
        public CalendarData() {
            DateTime baseDate = DateTime.Today;
            PersonalDays = GetPersonalDays(baseDate);
            Holidays = GetHolidays(baseDate);
            BirthDates = GetBirthDates(baseDate);
        }

        public List<DateTime> PersonalDays { get; }
        public List<DateTime> Holidays { get; }
        public List<DateTime> BirthDates { get; }

        List<DateTime> GetPersonalDays(DateTime baseDate) {
            return new List<DateTime>() {
                    baseDate.AddDays(-7),
                    baseDate.AddDays(-2),
                    baseDate.AddDays(-1),
                    baseDate.AddDays(3),
                    baseDate.AddDays(4),
                    baseDate.AddDays(9),
                    baseDate.AddDays(10),
                    baseDate.AddDays(12),
                    baseDate.AddDays(15)
            };
        }

        List<DateTime> GetHolidays(DateTime baseDate) {
            return new List<DateTime>() {
                    baseDate.AddDays(-14),
                    baseDate.AddDays(-8),
                    baseDate.AddDays(12),
                    baseDate.AddDays(13)
            };
        }

        List<DateTime> GetBirthDates(DateTime baseDate) {
            return new List<DateTime>() {
                    baseDate.AddDays(-20),
                    baseDate.AddDays(-5),
                    baseDate,
                    baseDate.AddDays(1),
                    baseDate.AddDays(6),
                    baseDate.AddDays(7),
                    baseDate.AddDays(17)
            };
        }
    }
}
css
.dxbl-calendar-selected-item > a {
    color: #fff !important;
}
.dxbl-calendar-day > a {
    text-decoration: none;
}

Run Demo: Date Edit - Highlight Special Dates

See Also

DxDateEdit<T> Class

DxDateEdit<T> Members

DevExpress.Blazor Namespace