blazor-devexpress-dot-blazor-424d5752.md
Maps the resource’s properties to the data source fields.
Namespace : DevExpress.Blazor
Assembly : DevExpress.Blazor.v25.2.dll
NuGet Package : DevExpress.Blazor
public class DxSchedulerResourceMappings :
DxSchedulerMappingsBase
The following members return DxSchedulerResourceMappings objects:
Follow the steps below to add and assign resources to Scheduler appointments:
ResourceObject).ResourceObject class instances) and define their options:Color property value overrides the background color specified in the CSS class.DxSchedulerResourceMappings object to the DxSchedulerDataStorage.ResourceMappings property. In this object, map the data source fields to appointment properties.SchedulerGroupType.Resource.<DxScheduler StartDate="@DateTime.Today"
DataStorage="@DataStorage"
GroupType="SchedulerGroupType.Resource"
ResourceColorInHeaderVisible="true">
<Views>
<DxSchedulerDayView DayCount="3"
TimeScale="@(new TimeSpan(1,0,0))"
WorkTime="new DxSchedulerTimeSpanRange(TimeSpan.FromHours(9), TimeSpan.FromHours(18))"
VisibleTime="new DxSchedulerTimeSpanRange(TimeSpan.FromHours(8), TimeSpan.FromHours(19))"
TimeIndicatorVisibility="SchedulerTimeIndicatorVisibility.Never">
</DxSchedulerDayView>
<DxSchedulerWeekView ShowWorkTimeOnly="true" />
<DxSchedulerWorkWeekView ShowWorkTimeOnly="true" />
<DxSchedulerTimelineView />
</Views>
</DxScheduler>
@code {
DxSchedulerDataStorage DataStorage = new DxSchedulerDataStorage() {
AppointmentsSource = AppointmentCollection.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.GetResources(),
ResourceMappings = new DxSchedulerResourceMappings() {
Id = "Id",
Caption = "Name",
Color = "Color",
BackgroundCssClass = "BackgroundCss",
TextCssClass = "TextCss"
}
};
}
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 static partial class AppointmentCollection {
public static List<Appointment> GetAppointments() {
DateTime date = DateTime.Now.Date;
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, 0, 0)),
Status = 1,
ResourceId = 0
},
new Appointment {
Caption = "Upgrade Personal Computers",
StartDate = date + (new TimeSpan(0, 13, 0, 0)),
EndDate = date + (new TimeSpan(0, 14, 30, 0)),
Status = 1,
ResourceId = 0
},
// ...
new Appointment {
Caption = "Final Budget Review",
StartDate = date + (new TimeSpan(0, 13, 0, 0)),
EndDate = date + (new TimeSpan(0, 15, 0, 0)),
Status = 1,
ResourceId = 1
},
new Appointment {
Caption = "Install New Database",
StartDate = date + (new TimeSpan(0, 9, 45, 0)),
EndDate = date + (new TimeSpan(1, 11, 15, 0)),
Status = 1,
ResourceId = 1
},
// ...
};
return dataSource;
}
}
public class ResourceObject {
public int Id { get; set; }
public string Name { get; set; }
public System.Drawing.Color Color { get; set; }
public string TextCss { get; set; }
public string BackgroundCss { get; set; }
}
public static partial class ResourceCollection {
public static List<ResourceObject> GetResources() {
var dataSource = new List<ResourceObject>() {
new ResourceObject() { Id=0 , Name="John Heart", TextCss="text-white",
BackgroundCss="dxbl-green-color",
/*Color = System.Drawing.Color.Green*/ },
new ResourceObject() { Id=1 , Name="Samantha Bright", TextCss="text-white",
BackgroundCss="dxbl-orange-color",
/*Color = System.Drawing.Color.Orange*/ },
new ResourceObject() { Id=2 , Name="Arthur Miller", TextCss="text-white",
BackgroundCss="dxbl-purple-color",
/*Color = System.Drawing.Color.Purple*/ },
};
return dataSource;
}
}
If you do not need to display all of the resources from the data source, use the VisibleResourcesDataSource property to specify visible resources.
Run Demo: Scheduler - Resources
You can add custom properties to a resource:
The following code snippet adds the MyCustomField field to ResourceObject and maps this field to the resource’s MyCustomProperty property:
@code {
public class ResourceObject {
public int Id { get; set; }
public string LabelName { get; set; }
public System.Drawing.Color LabelColor { get; set; }
public string MyCustomField { get; set; } // a custom field
}
DxSchedulerDataStorage DataStorage = new DxSchedulerDataStorage() {
ResourcesSource = new List<ResourceObject>() {
new ResourceObject() {
Id = 1,
ResourceName = "Resource One",
ResourceColor = System.Drawing.Color.Aqua,
MyCustomField = "custom text for Resource One"
},
new ResourceObject() {
Id = 2,
ResourceName = "Resource Two",
ResourceColor = System.Drawing.Color.Beige,
MyCustomField = "custom text for Resource Two"
},
},
ResourceMappings = new DxSchedulerResourceMappings() {
Id = "Id",
Caption = "ResourceName",
Color = "ResourceColor",
// Map the source object's custom field to the resource's custom property
CustomFieldMappings = new List<DxSchedulerCustomFieldMapping> {
new DxSchedulerCustomFieldMapping { Name = "MyCustomProperty", Mapping = "MyCustomField" }
}
}
};
}
Object DevExpress.Blazor.Scheduler.Internal.BindableBase DxSchedulerMappingsBase DxSchedulerResourceMappings
See Also