blazor-devexpress-dot-blazor-85a8bb71.md
Stores information about a resource header cell in the Scheduler.
Namespace : DevExpress.Blazor
Assembly : DevExpress.Blazor.v25.2.dll
NuGet Package : DevExpress.Blazor
public class SchedulerResourceHeaderCellInfo
A SchedulerResourceHeaderCellInfo object is passed as the context parameter to resource header templates. Use the Intervals property to get intervals a resource header cell belongs. The Resource property specifies the resource associated with the resource header cell or contains an empty resource item if no resource is assigned.
The following example adds images to resource header cells:
<DxScheduler @bind-StartDate="@StartDate"
DataStorage="@DataStorage"
GroupType="@SchedulerGroupType.Resource"
ResourceColorInHeaderVisible="false"
HtmlCellDecoration="OnHtmlCellDecoration"
CssClass="demo-sc-size">
<Views>
<DxSchedulerDayView DayCount="2" ShowWorkTimeOnly="true" CellMinWidth="120">
<ResourceHeaderCellTemplate>
<div class="d-flex align-items-center flex-row scheduler-resource-container">
<div>@context.Resource.Caption</div>
</div>
</ResourceHeaderCellTemplate>
</DxSchedulerDayView>
</Views>
</DxScheduler>
</DemoChildContent>
@code {
DateTime StartDate { get; set; } = DateTime.Today;
DxSchedulerDataStorage DataStorage = new DxSchedulerDataStorage() {
AppointmentsSource = ResourceAppointmentCollection.GetAppointments(),
AppointmentMappings = new DxSchedulerAppointmentMappings() {
Type = "AppointmentType",
Start = "StartDate",
End = "EndDate",
Subject = "Caption",
AllDay = "AllDay",
Location = "Location",
Description = "Description",
LabelId = "Label",
StatusId = "Status",
RecurrenceInfo = "Recurrence",
ResourceId = "ResourceId"
},
ResourcesSource = ResourceCollection.GetResourcesForGrouping(),
ResourceMappings = new DxSchedulerResourceMappings() {
Id = "Id",
Caption = "Name",
BackgroundCssClass = "BackgroundCss",
TextCssClass = "TextCss",
CustomFieldMappings = new List<DxSchedulerCustomFieldMapping> {
new DxSchedulerCustomFieldMapping{ Name = "EmployeeId", Mapping = "Id" }
}
}
};
void OnHtmlCellDecoration(SchedulerHtmlCellDecorationEventArgs args) {
if(args.CellType == SchedulerCellType.ResourceHeader) {
args.CssClass = "card-header";
args.Style = "padding: 0.4725rem;";
}
}
}
using System;
namespace BlazorDemo.Data {
public class Appointment {
public Appointment() { }
public int AppointmentType { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public string Caption { get; set; }
public string Description { get; set; }
public string Location { get; set; }
public int? Label { get; set; }
public int Status { get; set; }
public bool AllDay { get; set; }
public string Recurrence { get; set; }
public int? ResourceId { get; set; }
public string Resources { get; set; }
public bool Accepted { get; set; }
}
}
using System;
using System.Collections.Generic;
namespace BlazorDemo.Data {
public static partial class AppointmentCollection {
public static List<Appointment> GetAppointments() {
DateTime date = DateTimeUtils.GetWeekStart(DateTime.Now);
var dataSource = new List<Appointment>() {
new Appointment {
Caption = "Install New Router in Dev Room",
StartDate = date + (new TimeSpan(0, 10, 0, 0)),
EndDate = date + (new TimeSpan(0, 12, 30, 0)),
Label = 6,
Status = 4
},
new Appointment {
Caption = "Upgrade Personal Computers",
StartDate = date + (new TimeSpan(0, 13, 0, 0)),
EndDate = date + (new TimeSpan(0, 15, 30, 0)),
Label = 1,
Status = 4
},
new Appointment {
Caption = "Website Redesign Plan",
StartDate = date + (new TimeSpan(1, 9, 30, 0)),
EndDate = date + (new TimeSpan(1, 12, 0, 0)),
Label = 1,
Status = 1,
Accepted = true
},
new Appointment {
Caption = "New Brochures",
StartDate = date + (new TimeSpan(1, 13, 30, 0)),
EndDate = date + (new TimeSpan(1, 15, 15, 0)),
Label = 8,
Status = 2,
Accepted = true
},
new Appointment {
Caption = "Book Flights to San Fran for Sales Trip",
StartDate = date + (new TimeSpan(1, 12, 0, 0)),
EndDate = date + (new TimeSpan(1, 13, 0, 0)),
AllDay = true,
Label = 8,
Status = 1
},
new Appointment {
Caption = "Approve Personal Computer Upgrade Plan",
StartDate = date + (new TimeSpan(2, 10, 0, 0)),
EndDate = date + (new TimeSpan(2, 13, 0, 0)),
Label = 8,
Status = 2
},
new Appointment {
Caption = "Final Budget Review",
StartDate = date + (new TimeSpan(2, 14, 0, 0)),
EndDate = date + (new TimeSpan(2, 16, 30, 0)),
Label = 1,
Status = 1
},
new Appointment {
Caption = "Install New Database",
StartDate = date + (new TimeSpan(3, 9, 45, 0)),
EndDate = date + (new TimeSpan(3, 11, 45, 0)),
Label = 6,
Status = 4,
Accepted = true
},
new Appointment {
Caption = "Approve New Online Marketing Strategy",
StartDate = date + (new TimeSpan(3, 12, 30, 0)),
EndDate = date + (new TimeSpan(3, 15, 30, 0)),
Label = 1,
Status = 1,
Accepted = true
},
new Appointment {
Caption = "Customer Workshop",
StartDate = date + (new TimeSpan(4, 11, 0, 0)),
EndDate = date + (new TimeSpan(4, 12, 0, 0)),
AllDay = true,
Label = 8,
Status = 1
},
new Appointment {
Caption = "Prepare 2021 Marketing Plan",
StartDate = date + (new TimeSpan(4, 10, 30, 0)),
EndDate = date + (new TimeSpan(4, 13, 0, 0)),
Label = 1,
Status = 1,
Accepted = true
},
new Appointment {
Caption = "Brochure Design Review",
StartDate = date + (new TimeSpan(4, 14, 0, 0)),
EndDate = date + (new TimeSpan(4, 16, 30, 0)),
Label = 1,
Status = 2,
Accepted = true
},
new Appointment {
Caption = "Create Icons for Website",
StartDate = date + (new TimeSpan(5, 10, 0, 0)),
EndDate = date + (new TimeSpan(5, 12, 30, 0)),
Label = 1,
Status = 1
},
new Appointment {
Caption = "Launch New Website",
StartDate = date + (new TimeSpan(5, 13, 20, 0)),
EndDate = date + (new TimeSpan(5, 16, 0, 0)),
Label = 8,
Status = 1
},
new Appointment {
Caption = "Upgrade Server Hardware",
StartDate = date + (new TimeSpan(6, 11, 0, 0)),
EndDate = date + (new TimeSpan(6, 13, 30, 0)),
Label = 8,
Status = 1
}
};
return dataSource;
}
}
}
Run Demo: Scheduler - Resource Header Template
Object SchedulerResourceHeaderCellInfo
See Also