DayPilot Pro 3.9

Released on August 2, 2007 (build 1128).


(F40) Multiple-days resource scheduling control (DayPilot Scheduler)

This new control replaces DayPilot Vertical in resources view. DayPilot Vertical is still available in both Days and Resources views but DayPilot Vertical/Resources view is now deprecated.

New features:

Showing multiple days

DayPilot Vertical was able to show just a single day in Resources view. "Days" property now determines the number of days to be rendered (it was ignored in Resources view in DayPilot Vertical).

Configurable scale

DayPilot Vertical shows one cell per hour. With the new control, you can configure the cell size by setting CellDuration property (in minutes). CellDuration is not limited, you can choose to show:

  • 12 cells per hour (CellDuration="5")
  • 4 cells per hour (CellDuration="15")
  • 1 cell per hour (CellDuration="60")
  • 1 cell per day (CellDuration="1440")

Time header grouping

Time header now has two rows:

  • First row for cell groups (grouping cells by hour, day, week, or month)
  • Second row for individual cells

Improved rendering time

With the increased number of cells being rendered further performance improvements were necessary:

  • Rendering time for year view (by day, grouped by month; renders 2920 cells) was shortened from initial 15.4 s to 1.5 s (Internet Explorer 7).

New views

The combination of the properties mentioned above allows using full range of time views:

  • Day view
  • Week view
  • Month view
  • Year view

Rendering events

Rendering events will allow you to modify scheduler components:

  • BeforeCellRender - modification of IsBusiness/BackgroundColor properties for time cells
  • BeforeEventRender - modification of InnerHTML and other properties of event boxes
  • BeforeTimeHeaderRender - modification of InnerHTML and other properties of the time headers (X axis)
  • BeforeResHeaderRender - modification of InnerHTML and other properties of the resources headers (Y axis)

AJAX supported

The following actions are available to the user and handled either by JavaScript/PostBack/CallBack:

  • Event moving
  • Event resizing
  • Inline event editing
  • Time range selection
  • Refresh event (changing of StartDate, Days, CellDuration, CellGroupBy, and CellWidth properties)

(F43) Multiple custom data fields binding

In the previous versions, it was possible to bind a custom data source field to an event (using DataTagField property). The value of this field was available through the lifecycle of event:

  • In BeforeEventRender as e.Tag (useful for custom event background or HTML based on event type).
  • In JavaScript event handlers as e.tag() (useful for custom event handling of different event types).
  • In server-side event handlers as e.Tag.

The Tag field is now able to bind multiple fields from the datasource:

  • DataTagField property is renamed to DataTagFields
  • DataTagFields accepts a single field name or multiple field names (comma-separated)
  • The field values can be accessed using the field name:
    • client side: e.tag("field")
    • server side: e.Tag["field"] or e.Tag[0]

Custom data fields API comparison:

Old syntax (3.8-) New syntax (3.9+)
Binding the custom data source field(s) DataTagField="type" DataTagFields="type,color,image"
Accessing the custom fields values on the client side e.tag() e.tag("type")
The result of calling e.tag() on the client side Tag field value encodeURIComponent() encoded tag field values, joined using '&' character
Accessing the custom fields values on the server side e.Tag e.Tag["type"] or e.Tag[0]

(F47) Time range selection context menu (DayPilot Calendar & DayPilot Scheduler)

It's now possible to handle the time range selection using a context menu on the client side.

New & changed properties

  • TimeRangeSelectedHandling: New "Hold" option was added. It causes the selection to stay after mouse release (the other options - JavaScript/PostBack/CallBack clear the selection immediately).
  • ContextMenuSelectionID: Specify the context menu ID (DayPilotMenu control) that will be available after right-clicking the selection.

Sample context menu declaration:

    <DayPilot:DayPilotMenu ID="DayPilotMenu1" runat="server">
        <DayPilot:MenuItem Action="JavaScript" JavaScript="dps1.timeRangeSelectedCallBack(e.start, e.end, e.resource); dps1.cleanSelection();"
            Text="Create new event (CallBack)" />
        <DayPilot:MenuItem Action="JavaScript" JavaScript="alert('Start: ' + e.start + '\nEnd: ' + e.end + '\nResource id: ' + e.resource);"
            Text="Show selection details" />
        <DayPilot:MenuItem Action="JavaScript" JavaScript="dps1.cleanSelection();"
            Text="Clean selection" />

There are three menu items:

  • "Create new event (CallBack)": Fires a TimeRangeSelected event on the server side using AJAX CallBack.
  • "Show selection details": Shows a dialog box with selection start, end, and resource id information using JavaScript.
  • "Clean selection": Cancels the selection using JavaScript.

(F34) Time range selecting (DayPilot Vertical)

Implemented in DayPilot Scheduler only.

Support in DayPilot Vertical is on hold.

(F35) Event deleting (DayPilot Vertical)

Support in DayPilot Vertical is on hold.

This feature will be added to DayPilot Scheduler in the next release (DayPilot Pro 4.0). 

See also F27 Event delete button ("X").

(F36) Event editing (DayPilot Vertical)

Implemented in DayPilot Scheduler only.

Support in DayPilot Vertical is on hold.

See also F09 Inline event editing.

(F41) Event selecting (DayPilot Vertical)

Support in DayPilot Vertical is on hold.

This feature will be added to DayPilot Scheduler in the next release (DayPilot Pro 4.0). 

See also F22 Calendar event selecting (DayPilot Calendar).

Other improvements & fixes

1. Event boxes can be turned off even for short events. The type DayPilotCalendar.UseEventBoxes is now UseBoxesEnum instead of bool. The following values are supported:

  • Always (default, replacing "true")
  • ShortEventsOnly (replacing "false", still renders event boxes for short events)
  • Never (never renders event boxes)

2. {0} replacement in DayPilotMenu item JavaScript actions fixed.

API changes

  • ColumnId property renamed to ResourceId in the following classes:
    • BeforeCellRenderEventArgs
    • EventClickEventArgs
    • EventDeleteEventArgs
    • EventMenuClickEventArgs
    • EventRightClickEventArgs
  • OldColumn/NewColumn properties renamed to OldResource/NewResource in the following class:
    • EventMoveEventArgs
  • DataTagField property renamed to DataTagFields.
  • Tag property type changed from string to TagCollection in the following classes:
    • BeforeEventRenderEventArgs
    • EventClickEventArgs
    • EventDeleteEventArgs
    • EventDeleteEventArgs
    • EventMenuClickEventArgs
    • EventMoveEventArgs
    • EventResizeEventArgs
    • EventRightClickEventArgs