[Expand]General Information
[Collapse]WinForms Controls
  .NET Core Support
  Prerequisites
 [Expand]What's Installed
 [Expand]Build an Application
 [Expand]Controls and Libraries
 [Expand]Common Features
  Get More Help
 [Collapse]API Reference
  [Expand]DevExpress.DataAccess.UI
  [Expand]DevExpress.DataAccess.UI.Design
  [Expand]DevExpress.DataAccess.UI.EntityFramework
  [Expand]DevExpress.DataAccess.UI.Excel
  [Expand]DevExpress.DataAccess.UI.ObjectBinding
  [Expand]DevExpress.DataAccess.UI.Sql
  [Expand]DevExpress.DataAccess.UI.Wizard
  [Expand]DevExpress.DataAccess.UI.Wizard.Services
  [Expand]DevExpress.DataAccess.UI.Wizard.Views
  [Expand]DevExpress.DocumentView
  [Expand]DevExpress.DocumentView.Controls
  [Expand]DevExpress.LookAndFeel
  [Expand]DevExpress.LookAndFeel.Helpers
  [Expand]DevExpress.Skins
  [Expand]DevExpress.Snap
  [Expand]DevExpress.Snap.API.Native
  [Expand]DevExpress.Snap.Core
  [Expand]DevExpress.Snap.Core.API
  [Expand]DevExpress.Snap.Core.Fields
  [Expand]DevExpress.Snap.Core.Forms
  [Expand]DevExpress.Snap.Core.Options
  [Expand]DevExpress.Snap.Core.Services
  [Expand]DevExpress.Snap.Extensions
  [Expand]DevExpress.Snap.Extensions.Localization
  [Expand]DevExpress.Snap.Extensions.UI
  [Expand]DevExpress.Snap.Localization
  [Expand]DevExpress.Snap.Options
  [Expand]DevExpress.Snap.Services
  [Expand]DevExpress.Utils
  [Expand]DevExpress.Utils.Animation
  [Expand]DevExpress.Utils.Behaviors
  [Expand]DevExpress.Utils.Controls
  [Expand]DevExpress.Utils.DragDrop
  [Expand]DevExpress.Utils.Drawing
  [Expand]DevExpress.Utils.Filtering
  [Expand]DevExpress.Utils.Layout
  [Expand]DevExpress.Utils.Menu
  [Expand]DevExpress.Utils.MVVM
  [Expand]DevExpress.Utils.Taskbar
  [Expand]DevExpress.Utils.Taskbar.Core
  [Expand]DevExpress.Utils.UI.Localization
  [Expand]DevExpress.Utils.VisualEffects
  [Expand]DevExpress.Utils.Win
  [Expand]DevExpress.XtraBars
  [Expand]DevExpress.XtraBars.Alerter
  [Expand]DevExpress.XtraBars.Docking
  [Expand]DevExpress.XtraBars.Docking2010
  [Expand]DevExpress.XtraBars.Docking2010.Base
  [Expand]DevExpress.XtraBars.Docking2010.Customization
  [Expand]DevExpress.XtraBars.Docking2010.Views
  [Expand]DevExpress.XtraBars.Docking2010.Views.NativeMdi
  [Expand]DevExpress.XtraBars.Docking2010.Views.Tabbed
  [Expand]DevExpress.XtraBars.Docking2010.Views.Widget
  [Expand]DevExpress.XtraBars.Docking2010.Views.WindowsUI
  [Expand]DevExpress.XtraBars.FluentDesignSystem
  [Expand]DevExpress.XtraBars.Localization
  [Expand]DevExpress.XtraBars.Navigation
  [Expand]DevExpress.XtraBars.Ribbon
  [Expand]DevExpress.XtraBars.Ribbon.Gallery
  [Expand]DevExpress.XtraBars.Ribbon.ViewInfo
  [Expand]DevExpress.XtraBars.ToastNotifications
  [Expand]DevExpress.XtraBars.ToolbarForm
  [Expand]DevExpress.XtraBars.Utils
  [Expand]DevExpress.XtraBars.WinRTLiveTiles
  [Expand]DevExpress.XtraCharts
  [Expand]DevExpress.XtraCharts.Designer
  [Expand]DevExpress.XtraCharts.Wizard
  [Expand]DevExpress.XtraDataLayout
  [Expand]DevExpress.XtraDiagram
  [Expand]DevExpress.XtraDiagram.Docking
  [Expand]DevExpress.XtraDiagram.Options
  [Expand]DevExpress.XtraEditors
  [Expand]DevExpress.XtraEditors.ButtonPanel
  [Expand]DevExpress.XtraEditors.Calendar
  [Expand]DevExpress.XtraEditors.Camera
  [Expand]DevExpress.XtraEditors.Container
  [Expand]DevExpress.XtraEditors.Controls
  [Expand]DevExpress.XtraEditors.CustomEditor
  [Expand]DevExpress.XtraEditors.DXErrorProvider
  [Expand]DevExpress.XtraEditors.Filtering
  [Expand]DevExpress.XtraEditors.Mask
  [Expand]DevExpress.XtraEditors.Persistent
  [Expand]DevExpress.XtraEditors.Repository
  [Expand]DevExpress.XtraEditors.ViewInfo
  [Expand]DevExpress.XtraFilterEditor
  [Expand]DevExpress.XtraGantt
  [Expand]DevExpress.XtraGantt.Localization
  [Expand]DevExpress.XtraGantt.Scheduling
  [Expand]DevExpress.XtraGauges.Presets.Styles
  [Expand]DevExpress.XtraGauges.Win
  [Expand]DevExpress.XtraGauges.Win.Base
  [Expand]DevExpress.XtraGauges.Win.Gauges.Circular
  [Expand]DevExpress.XtraGauges.Win.Gauges.Digital
  [Expand]DevExpress.XtraGauges.Win.Gauges.Linear
  [Expand]DevExpress.XtraGauges.Win.Gauges.State
  [Expand]DevExpress.XtraGrid
  [Expand]DevExpress.XtraGrid.Columns
  [Expand]DevExpress.XtraGrid.EditForm
  [Expand]DevExpress.XtraGrid.FilterEditor
  [Expand]DevExpress.XtraGrid.Localization
  [Expand]DevExpress.XtraGrid.Views.BandedGrid
  [Expand]DevExpress.XtraGrid.Views.BandedGrid.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Base
  [Expand]DevExpress.XtraGrid.Views.Base.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Card
  [Expand]DevExpress.XtraGrid.Views.Card.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Grid
  [Expand]DevExpress.XtraGrid.Views.Grid.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Layout
  [Expand]DevExpress.XtraGrid.Views.Layout.Events
  [Expand]DevExpress.XtraGrid.Views.Layout.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Printing
  [Expand]DevExpress.XtraGrid.Views.Tile
  [Expand]DevExpress.XtraGrid.Views.WinExplorer
  [Expand]DevExpress.XtraGrid.WinExplorer
  [Expand]DevExpress.XtraLayout
  [Expand]DevExpress.XtraLayout.Converter
  [Expand]DevExpress.XtraLayout.Customization
  [Expand]DevExpress.XtraLayout.HitInfo
  [Expand]DevExpress.XtraLayout.Localization
  [Expand]DevExpress.XtraLayout.Utils
  [Expand]DevExpress.XtraMap
  [Expand]DevExpress.XtraMap.Printing
  [Expand]DevExpress.XtraNavBar
  [Expand]DevExpress.XtraNavBar.ViewInfo
  [Expand]DevExpress.XtraPdfViewer
  [Expand]DevExpress.XtraPdfViewer.Commands
  [Expand]DevExpress.XtraPdfViewer.Extensions
  [Expand]DevExpress.XtraPdfViewer.Localization
  [Expand]DevExpress.XtraPivotGrid
  [Expand]DevExpress.XtraPivotGrid.Data
  [Expand]DevExpress.XtraPrinting
  [Expand]DevExpress.XtraPrinting.Control
  [Expand]DevExpress.XtraPrinting.Preview
  [Expand]DevExpress.XtraPrintingLinks
  [Expand]DevExpress.XtraReports.UI
  [Expand]DevExpress.XtraRichEdit
  [Expand]DevExpress.XtraRichEdit.Commands
  [Expand]DevExpress.XtraRichEdit.Export
  [Expand]DevExpress.XtraRichEdit.Import
  [Expand]DevExpress.XtraRichEdit.Menu
  [Collapse]DevExpress.XtraScheduler
   [Expand]ActiveViewChangingEventArgs Class
    ActiveViewChangingEventHandler Delegate
   [Expand]AgendaView Class
   [Expand]AgendaViewAppearance Class
   [Expand]AppointmentDataStorage Class
   [Expand]AppointmentDependencyDataStorage Class
   [Expand]AppointmentDependencyFormEventArgs Class
    AppointmentDependencyFormEventHandler Delegate
   [Expand]AppointmentDependencyStorage Class
   [Expand]AppointmentDragDropOptions Class
   [Expand]AppointmentFlyoutOptions Class
   [Expand]AppointmentFlyoutShowingEventArgs Class
    AppointmentFlyoutShowingEventHandler Delegate
   [Expand]AppointmentFormEventArgs Class
    AppointmentFormEventHandler Delegate
   [Expand]AppointmentImagesEventArgs Class
    AppointmentImagesEventHandler Delegate
   [Expand]AppointmentLabel Class
   [Expand]AppointmentLabelCollection Class
   [Expand]AppointmentLabelDataStorage Class
   [Expand]AppointmentLabelExtension Class
   [Expand]AppointmentStatus Class
   [Expand]AppointmentStatusCollection Class
   [Expand]AppointmentStatusDataStorage Class
   [Expand]AppointmentStatusExtension Class
   [Expand]AppointmentStorage Class
   [Expand]AppointmentViewInfoCustomizingEventArgs Class
    AppointmentViewInfoCustomizingEventHandler Delegate
   [Expand]BaseHeaderAppearance Class
   [Expand]BaseViewAppearance Class
    BrushSavingType Enumeration
   [Expand]CustomDrawAppointmentFlyoutSubjectEventArgs Class
    CustomDrawAppointmentFlyoutSubjectEventHandler Delegate
   [Expand]CustomDrawObjectEventArgs Class
    CustomDrawObjectEventHandler Delegate
   [Expand]CustomizeAppointmentFlyoutEventArgs Class
    CustomizeAppointmentFlyoutEventHandler Delegate
   [Expand]CustomizeDateNavigationBarCaptionEventArgs Class
    DateNavigationMode Enumeration
   [Expand]DateNavigator Class
   [Expand]DayView Class
   [Expand]DayViewAppearance Class
   [Expand]DayViewAppointmentDisplayOptionsEx Class
   [Expand]DeleteRecurrentAppointmentFormEventArgs Class
    DeleteRecurrentAppointmentFormEventHandler Delegate
    DragDropMode Enumeration
    DXColorSavingType Enumeration
   [Expand]EditRecurrentAppointmentFormEventArgs Class
    EditRecurrentAppointmentFormEventHandler Delegate
   [Expand]FullWeekView Class
   [Expand]GanttView Class
   [Expand]GanttViewAppearance Class
   [Expand]GotoDateFormEventArgs Class
    GotoDateFormEventHandler Delegate
   [Expand]IAppointmentFlyoutData Interface
   [Expand]IAppointmentStorage Interface
   [Expand]InplaceEditorEventArgs Class
    InplaceEditorEventHandler Delegate
   [Expand]ISchedulerInplaceEditor Interface
   [Expand]ISchedulerStorage Interface
   [Expand]LabelMappingInfo Class
    LayoutElementKind Enumeration
   [Expand]LayoutViewInfoCustomizingEventArgs Class
   [Expand]MonthView Class
   [Expand]MonthViewAppearance Class
   [Expand]MonthViewAppointmentDisplayOptionsEx Class
   [Expand]PopupMenuShowingEventArgs Class
    PopupMenuShowingEventHandler Delegate
   [Expand]PrepareContextMenuEventArgs Class
    PrepareContextMenuEventHandler Delegate
   [Expand]PrepareFilterColumnEventArgs Class
    PrepareFilterColumnEventHandler Delegate
   [Expand]PreparePopupMenuEventArgs Class
    PreparePopupMenuEventHandler Delegate
   [Expand]RecurrentAppointmentActionFormEventArgs Class
   [Expand]RemindersFormEventArgs Class
    RemindersFormEventHandler Delegate
   [Expand]ResourceCategory Class
   [Expand]ResourceCategoryOptions Class
   [Expand]ResourceDataStorage Class
   [Expand]ResourceExtension Class
   [Expand]ResourceNavigator Class
   [Expand]ResourceStorage Class
   [Expand]ScaleBasedRangeControlClientOptions Class
   [Expand]SchedulerAppearance Class
    SchedulerColorId Enumeration
   [Expand]SchedulerColorSchema Class
   [Expand]SchedulerColorSchemaCollection Class
   [Expand]SchedulerControl Class
   [Collapse]SchedulerDataStorage Class
     SchedulerDataStorage Members
    [Expand]SchedulerDataStorage Constructor
    [Expand]SchedulerDataStorage Properties
    [Collapse]SchedulerDataStorage Events
      AppointmentChanging Event
      AppointmentCollectionAutoReloading Event
      AppointmentCollectionCleared Event
      AppointmentCollectionLoaded Event
      AppointmentDeleting Event
      AppointmentDependenciesChanged Event
      AppointmentDependenciesDeleted Event
      AppointmentDependenciesInserted Event
      AppointmentDependencyChanging Event
      AppointmentDependencyCollectionAutoReloading Event
      AppointmentDependencyCollectionCleared Event
      AppointmentDependencyCollectionLoaded Event
      AppointmentDependencyDeleting Event
      AppointmentDependencyInserting Event
      AppointmentInserting Event
      AppointmentsChanged Event
      AppointmentsDeleted Event
      AppointmentsInserted Event
      CreateSourceObject Event
      FetchAppointments Event
      FilterAppointment Event
      FilterDependency Event
      FilterReminderAlert Event
      FilterResource Event
      ItemPropertyChanged Event
      PrepareAppointmentFilterColumn Event
      PrepareResourceFilterColumn Event
      ReminderAlert Event
      ResourceChanging Event
      ResourceCollectionAutoReloading Event
      ResourceCollectionCleared Event
      ResourceCollectionLoaded Event
      ResourceDeleting Event
      ResourceInserting Event
      ResourcesChanged Event
      ResourcesDeleted Event
      ResourcesInserted Event
    [Expand]SchedulerDataStorage Methods
   [Expand]SchedulerDateNavigationBar Class
   [Expand]SchedulerDeferredScrollingOption Class
   [Expand]SchedulerInplaceEditorEventArgs Class
   [Expand]SchedulerMenuCheckItem Class
   [Expand]SchedulerMenuItem Class
   [Expand]SchedulerOptionsBehavior Class
   [Expand]SchedulerOptionsPrint Class
   [Expand]SchedulerOptionsRangeControl Class
   [Expand]SchedulerOptionsView Class
   [Expand]SchedulerPopupMenu Class
   [Expand]SchedulerResourceHeaderOptions Class
   [Expand]SchedulerStorage Class
   [Expand]SchedulerViewBase Class
   [Expand]SchedulerViewRepository Class
    SchedulerViewStatusDisplayType Enumeration
   [Expand]ShowFormEventArgs Class
   [Expand]StatusMappingInfo Class
   [Expand]TimeIndicatorDisplayOptions Class
   [Expand]TimelineView Class
   [Expand]TimelineViewAppearance Class
   [Expand]TimelineViewAppointmentDisplayOptionsEx Class
   [Expand]TimeRegion Class
   [Expand]TimeScaleWorkDay Class
   [Expand]TimeScaleWorkHour Class
   [Expand]WeekView Class
   [Expand]WeekViewAppearance Class
   [Expand]WeekViewAppointmentDisplayOptionsEx Class
   [Expand]WorkWeekView Class
   [Expand]WorkWeekViewAppearance Class
  [Expand]DevExpress.XtraScheduler.Drawing
  [Expand]DevExpress.XtraScheduler.GoogleCalendar
  [Expand]DevExpress.XtraScheduler.Printing
  [Expand]DevExpress.XtraScheduler.Reporting
  [Expand]DevExpress.XtraScheduler.Reporting.UI
  [Expand]DevExpress.XtraScheduler.Services
  [Expand]DevExpress.XtraScheduler.Services.Implementation
  [Expand]DevExpress.XtraScheduler.UI
  [Expand]DevExpress.XtraSpellChecker
  [Expand]DevExpress.XtraSpellChecker.Localization
  [Expand]DevExpress.XtraSplashForm
  [Expand]DevExpress.XtraSplashScreen
  [Expand]DevExpress.XtraSpreadsheet
  [Expand]DevExpress.XtraSpreadsheet.Services
  [Expand]DevExpress.XtraTab
  [Expand]DevExpress.XtraTab.Buttons
  [Expand]DevExpress.XtraTab.ViewInfo
  [Expand]DevExpress.XtraTabbedMdi
  [Expand]DevExpress.XtraToolbox
  [Expand]DevExpress.XtraTreeList
  [Expand]DevExpress.XtraTreeList.Columns
  [Expand]DevExpress.XtraTreeList.Data
  [Expand]DevExpress.XtraTreeList.Localization
  [Expand]DevExpress.XtraTreeList.Menu
  [Expand]DevExpress.XtraTreeList.Nodes
  [Expand]DevExpress.XtraTreeList.Nodes.Operations
  [Expand]DevExpress.XtraTreeList.StyleFormatConditions
  [Expand]DevExpress.XtraTreeMap
  [Expand]DevExpress.XtraTreeMap.Printing
  [Expand]DevExpress.XtraVerticalGrid
  [Expand]DevExpress.XtraVerticalGrid.Events
  [Expand]DevExpress.XtraVerticalGrid.Localization
  [Expand]DevExpress.XtraVerticalGrid.Rows
  [Expand]DevExpress.XtraWaitForm
  [Expand]DevExpress.XtraWizard
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

SchedulerDataStorage.FetchAppointments Event

Occurs before the SchedulerDataStorage starts retrieving the appointments for the specified time interval.

Namespace:DevExpress.XtraScheduler
Assembly:DevExpress.XtraScheduler.v19.2.dll

Expanded Syntax

Expanded Event Data

The event handler receives an argument of type FetchAppointmentsEventArgs containing data related to this event.

Expanded Remarks

Handle the FetchAppointments event to limit the number of appointments fetched from the data source. This can be useful when working with a large amount of data, and only a small part of it needs to be loaded at one time.

The FetchAppointments event reduces the amount of data fetched from slow data sources with large data sets. Consider the interaction between the Scheduler, the Storage and the Data Source. When the Scheduler changes its displayed time interval, it requests the Storage for appointments to display. The Storage generates the FetchAppointments event and queries the Data Source for more data. This query may result in sending an excessive amount of appointment data. To prevent this, and to get only data that is required for the visible time interval, you can handle the FetchAppointment event. In the event handler, you should modify the query to get only the required data.

If the FetchAppointments event is handled, the Scheduler does not rely on its own, built-in caching strategy. The FetchAppointments event occurs in situations which do not involve any changes in displayed data, such as control resizing. To improve performance, treat these cases as your needs dictate and decide for yourself whether appointment data should be queried again or remain intact.

Certain scenarios may benefit from testing the DevExpress.XtraScheduler.Services.ISchedulerStateService.IsDataRefreshAllowed property before fetching data in the FetchAppointments event handler and perform the operation only if its value is true. In general, it is not required.

The following requirements should be met when handling the FetchAppointments event:

  • Do not clear and populate Appointments collection items within the FetchAppointments event handler, because this event was specially created to minimize the loading time in databound mode, by loading only visible appointments. It occurs before the SchedulerDataStorage starts to retrieve the appointments for the specified time interval, and allows you to modify the data source using the e.Interval property value as a query parameter. If appointments are generated within the FetchAppointments event handler, you may fail to retrieve custom fields when appointments are being displayed, because appointments data is disposed of. That is, it's not suitable for unbound mode.
  • Establish a mapping for the Appointment.Id property value using the DevExpress.XtraScheduler.AppointmentMappingInfo.AppointmentId property. This is required for correct appointment resizing beyond the visible interval when handling the FetchAppointments event.

To pad the time interval used to query appointments, we use a range of seven days (PADDING_DAYS constant). You can specify another interval arbitrarily.

Note

Prior to v.15.2, the FetchAppointments event occurs in situations, which do not involve any changes in displayed data ranges. This behavior may result in unhandled exceptions if the event was not properly handled. To solve the problem, we have implemented additional internal criteria that should be met before the event is raised. Starting with v.15.2, the FetchAppointments event fires not so often as it did before and does not fire at all in certain situations. This behavior may affect the customer's application logic. If you experience unwanted side effects due to the newly introduced behavior, set the EnableSmartFetch option to false to revert to the former mechanism of raising the FetchAppointments event.

Note

The Date Navigator control, if present on the form and linked with the Scheduler control, could also cause multiple FetchAppointments events to occur. When the DateNavigator.BoldAppointmentDates is set to true, DateNavigator requests the appointment information for highlighting the corresponding dates.

See the FetchAppointments Event - Handling Large Datasets document for more information.

Expanded See Also

Is this topic helpful?​​​​​​​