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):
Sample output (with free time links):
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
- escape() JavaScript function calls were replaced with encodeURIComponent(). escape() doesn't encode all Unicode characters properly and it might caused problems for events that contained characters like 'á', 'é' in value, text, or tag during callbacks and postbacks.
- HeaderDateFormat and ShowHeader values are now stored in ViewState properly.
- Text selection was forbidden for the remaining parts of calendar (see also http://forums.daypilot.org/Topic.aspx/40/selection_bug).
- Behavior of free space after events in Internet Explorer 6 was improved (see also http://forums.daypilot.org/Topic.aspx/36/cannot_enter_new_event_with_an_existing_event_in_slot).
- Header column widths were not corresponding to the time slot column widths in some cases. The header titles are now cropped if they are too long. See also http://forums.daypilot.org/Topic.aspx/21/resource_view_header_offset.
- The real scrollbar width is now detected and header column widths are set accordingly. This might cause similar symptoms as the previous bug.
DayPilot