DayPilot - Open-Source Outlook-Like Calendar/Scheduling Control for ASP.NET
Try the online demo: AJAX-style event creating, moving, resizing, and deleting • Context menu • Day view • Work week view • Week view • Month view • Horizontal/vertical resources view • PostBack/AJAX/JavaScript event handling • Binding to XmlDataSource, SqlDataSource, DataTable, ArrayList • Custom event formatting • UpdatePanel compatibility

DayPilot Pro 4.4

Released on January 21, 2008.

Main features

This release introduces a brand new control, DayPilotSchedulerDynamic. It is based on DayPilotScheduler and it introduces several revolutionary features:

  • On-demand event loading
  • Double scrollbar (vertical and horizontal)
  • Hiding non-business hours (the timeline can be discontinuous)

The standard features that are available in this first release:

  • Event moving (the moving shadow intelligently handles the hidden noń-business hours)
  • Event resizing (the resizing shadow intelligently handles the hidden noń-business hours)
  • Event clicking
  • Context menu
  • Event customization (BeforeEventRender event)
  • It keeps the scrolling position after PostBack (or partial PostBack inside an UpdatePanel)

This first release has a few limitations:

  • No header customization (BeforeHeaderRender event is not available)
  • No cell customization (BeforeCellRender event is not available) 
  • No time range selecting (TimeRangeSelected event is not available)
  • Width can't be specified in percent, only in pixels
  • Simplified design-time preview in Visual Studio
  • Initial scrollbar postion can't be changed.
  • The red color of the line indicating the time break is hardcoded.
  • refreshCallBack() client-side method is not available.

The first set of the missing features should be available in the next release (4.5).

There is also one difference that will stay in the future versions as well:

  • It draws the concurrent events in the same row (DayPilotScheduler extends the row height and shows one event per line).

(F49) On-demand event loading (DayPilotSchedulerDynamic)

The original DayPilotScheduler allows showing a long time range (one year with one cell per day is not a problem). However, it renders all the events at once. In case that you have hundreds of events it will render very slowly and the callbacks and postbacks will take a lot of time.

DayPilotSchedulerDynamic offers a major improvement: It loads only the events that belong to the current view port (only a limited time range and a limited set of resources).

The advantages are obvious:

  • You can show many more resources (adding more resources won't slow down the control)
  • The control renders quickly with a full schedule as well.

When you scroll down or right, it sends a request for a new set of events to the server (Scroll event) and updates quickly. The background cells are rendered after the event set is loaded. The white background area indicates that the events were not loaded yet.

When binding the data source (during the initial loading, during scrolling or after an update) you can get the information about the visible area using ViewPort property:

DateTime firstVisibleDate = DynamicScheduler1.ViewPort.Start;
DateTime lastVisibleDate = DynamicScheduler1.ViewPort.End;
List<string> visibleResourcesIDs = DynamicScheduler1.ViewPort.Resources;

You should use the ViewPort property to limit the SQL query.

(F53) Vertical scrollbar (DayPilotSchedulerDynamic)

Because DayPilotSchedulerDynamic can show many more resources, it was necessary to add a vertical scrollbar. Both scrollbars are synchronized with the headers.

The vertical scrollbar is turned on automatically: If the specified Height is enough to show all resources, the vertical scrollbar will be added.

(F57) Hiding non-business hours (DayPilotSchedulerDynamic)

It is possible to show the timeline without the non-business hours (e.g. weekends, 5pm-9am - depending on the resolution). Set the ShowNonBusiness property to false:

ShowNonBusiness="false"

Other fixes and improvements

.NET Framework 3.5 compatiblity

  • DayPilot now properly detects the AJAX Extensions version 3.5.0.0. from .NET Framework 3.5. That means it will work inside an UpdatePanel properly.

Visual Studio 2008 design-time preview

  • The design-time preview of DayPilotCalendar and DayPilotScheduler in Visual Studio 2008 is improved (the previous versions were rendering the time cells improperly).

UpdatePanel and initial Visible="false" scenario fixed

DayPilotMonth: InnerHTML fixed

  •  Changing e.InnerHTML in BeforeEventRender had no effect: It was always overwritten by the standard e.Text.

DayPilotMonth: Month names in negative time zone offset

  • The month names were moved one month back when the client was in a time zone with a negative offset.

DayPilotMonth: ShowEventStartEnd property

  • It's possible to turn off the starting and ending times in event boxes by setting ShowEventStartEnd="false"

 

DayPilot Pro is an advanced DayPilot edition. You can check a thumbnail overview of the most interesting features. There is also an online demo with all the features working (including the AJAX features). If you want to test the design-time support and API you can download a fully functional trial version. And if you like it, you can buy a full version with source code and 12 months of upgrades and support (with a 30-days money back guarantee).

DayPilot Lite is a do-it-yourself open-source edition of DayPilot. Although it misses some DayPilot Pro features, there are thousands of developers using it to build calendar, personal scheduling, and resource booking applications.

Questions or suggestions? Try DayPilot forums or contact us directly.