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 3.6

Released on 1 May, 2007.

Features

(F09) Inline event editing

There is be a new option for EventClickEventHandling:

  • Disabled
  • JavaScript
  • PostBack
  • CallBack
  • Edit

When the handling is set to Edit, the event is turned into an editable box after a user click.

  • Editing is finished (and the changes submitted) by clicking outside of the editable box or by hitting Enter.
  • Editing can be cancelled by hitting Esc.

The changes submission can be handled as usual:

  • PostBack
  • AJAX callback
  • custom JavaScript

See a live demo.

(F14) Client-side JavaScript API

New JavaScript-related features:

1. The client-side object name can be set using ClientObjectName property. In the previous releases the object name was always ClientID of the control. That resulted in a very long name when the control was placed in a page that used master pages (e.g. ctl00_ContentPlaceHolder1_DayPilotCalendar1).

2. It is now easier to call CallBack and PostBack requests from custom JavaScript event handlers.

Custom resizing handler (before):

function customResize(start, pstart, end, id, tag, border, step) {
  var params = 'RES:' + escape(start) + '&' + escape(pstart) + '&' + escape(end) + '&'
                            + escape(border) + '&' + escape(step) + '&' + escape(id) + '&' + escape(id);
  __doPostBack('ctl00$ContentPlaceHolder1$DayPilotCalendar1', params);
}

Custom resizing handler (now):

function customResize(e, newStart, newEnd) {
  dpc1.eventResizeCallBack(e, newStart, newEnd);
}

The parameters are now passed in a reasonable format: e is an object representing an event, newStart is a Date object representing the new starting date and time and newEnd is a Date object representing the new ending date and time.

3. All JavaScript handlers are now passed a JavaScript object representing the given calendar event (except of TimeRangeSelected) instead of a set of individual properties.

(F19) Support for mobile devices

There is a new control (DayPilotMobile) that supports events rendering in a very simplified format that can be rendered in mobile devices.

See a live demo.

  • Simplistic rendering (just <div>, <b>, and <a> HTML tags)
  • Multiple days support.
  • Custom event links (optional)
  • Custom free time links (optional)
  • Business hours start/end marks (optional)

Sample output (without free time links):

1/1/2007
---- 9:00 AM ----
9:30 AM-10:00 AM Event #3
12:30 PM-2:25 PM Event #2
12:45 PM-1:10 PM Event #1
---- 6:00 PM ----
6:35 PM-6:40 PM Event #4

Sample output (with free time links):

1/1/2007
  * 540 min
---- 9:00 AM ----
  * 30 min
9:30 AM-10:00 AM Event #3
  * 150 min
12:30 PM-2:25 PM Event #2
12:45 PM-1:10 PM Event #1
  * 290 min
---- 6:00 PM ----
  * 35 min
6:35 PM-6:40 PM Event #4
  * 320 min

The data binding API is the same as for DayPilotCalendar. DayPilotMobile supports a limited set of properties:

  • DataEndField (data source column with event ending date)
  • DataStartField (data source column with event starting date)
  • DataTagField (data source column with event custom data)
  • DataTextField (data source column with event name)
  • DataValueField (data source column with event id)
  • Days (number of days to be shown)
  • EventNavigateUrl (URL of event link)
  • FreeNavigateUrl (URL of free time link)
  • HeaderDateFormat (date format of the day title)
  • ShowBusinessStartEnd (whether business start and end times should be visible)
  • StartDate (starting calendar date)

(F23) EventClickEventArgs extending

Current EventClickEventArgs properties:

  • Tag
  • Value

All properties are available:

  • Start
  • End
  • Value
  • Text
  • Tag

(F24) Event-specific context menu

Each event can have a cusom context menu. The default menu specified in ContextMenuID property can be overridden in BeforeEventRender event by setting e.ContextMenuClientName property. Note that you should set DayPilotMenu.ClientObjectName for these custom menus.

See a live demo.

Other improvements

1. Context menu title can be turned off (DayPilotMenu.ShowMenuTitle property).

2. For overnight events (that are shown as separate parts in each day) moving and resizing is limited:

  • It is possible to resize only using the very first top border and very last bottom border.
  • It is possible to move only using the first event part (in the first day).

This behavior is now indicated by a special cursor (not-allowed). The not-allowed cursor is shown when the mouse is over a part where usually an action would be allowed but is not because the it is only an event part.

3. It is possible to specify custom date for each column in resources view. This way it is possible to hide non-business days:

  • switch to resources view
  • add columns for the days you want to show
  • set Column.Date property for each column

Fixes

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.