JavaScript
Task task object structure is described in DayPilot.Task.data property documentation.
Adding a single event (raw data)
<div id="gantt"></div> <script> var gantt = new DayPilot.Gantt("gantt"); gantt.init(); gantt.tasks.add({ id: "1234", start: "2014-10-01T00:00:00", end: "2014-10-02T00:00:00", text: "Task 1" }); </script>
Adding a single event (DayPilot.Event object)
<div id="gantt"></div> <script> var gantt = new DayPilot.Gantt("gantt"); gantt.init(); gantt.tasks.add(new DayPilot.Event({ id: "1234", start: "2014-10-01T00:00:00", end: "2014-10-02T00:00:00", text: "Task 1" })); </script>
Adding a single event (milestone)
<div id="gantt"></div>
<script>
var gantt = new DayPilot.Gantt("gantt");
gantt.init();
gantt.tasks.add({
id: "1234",
start: "2014-10-01T00:00:00",
text: "Task 1", type: "Milestone"
}); </script>
Adding a task with children
<div id="gantt"></div>
<script>
var gantt = new DayPilot.Gantt("gantt"); gantt.taskGroupMode = "Auto"; // task group start and end is calculated automatically (default value)
gantt.init();
gantt.tasks.add({
id: "1234",
text: "Group 1", children: [ { id: "1234", start: "2014-10-01T00:00:00", end: "2014-10-02T00:00:00", text: "Task 1" }, { id: "1234", start: "2014-10-02T00:00:00", text: "Task 1", type: "Milestone" } ]
}); </script>
Bulk loading
<div id="gantt"></div>
<script>
var gantt = new DayPilot.Gantt("gantt"); gantt.taskGroupMode = "Auto"; // task group start and end is calculated automatically (default value)
gantt.tasks.list = [{
id: "1234",
text: "Group 1", children: [ { id: "1234", start: "2014-10-01T00:00:00", end: "2014-10-02T00:00:00", text: "Task 1" }, { id: "1234", start: "2014-10-02T00:00:00", text: "Task 1", type: "Milestone" } ]
}]; gantt.init(); </script>
ASP.NET WebForms
The Gantt ASP.NET control supports two ways of loading data:
- Generic ASP.NET-compatible data binding (DataSource and DataBind())
- Direct loading using Tasks collection
ASP.NET Gantt Data Binding
Data source fields have to be mapped using Data*Field properties.
Required properties:
- DataIdField
- DataTextField
- DataStartField
- DataEndField
Optional properties:
- DataParentField
- DataMilestoneField
- DataTagFields
Example
private void LoadTasks() { DayPilotGantt1.DataSource = DataGeneratorGantt.GetData(); DayPilotGantt1.DataIdField = "id"; DayPilotGantt1.DataTextField = "text"; DayPilotGantt1.DataStartField = "start"; DayPilotGantt1.DataEndField = "end"; DayPilotGantt1.DataParentField = "parent"; DayPilotGantt1.DataMilestoneField = "milestone"; DayPilotGantt1.DataBind(); DayPilotGantt1.Links.Clear(); DayPilotGantt1.Links.Add("1", "2"); }
Direct Gantt Task Data Loading
The tasks can be loaded by manually filling the Tasks collection.
Example
private void LoadTasks() { DayPilotGantt1.Tasks.Clear(); Task group = new Task("Group 1", "G1", DateTime.Now, DateTime.Now.AddDays(1)); group.Tags["info"] = "info"; group.Complete = 30; group.BubbleHtml = "Testing bubble"; group.Children.Add(CreateTask("Task 1", "1", DateTime.Now, DateTime.Now.AddDays(1), 50)); group.Children.Add("Task 2", "2", DateTime.Now, DateTime.Now.AddDays(1)); group.Children.Add(new Milestone("Milestone 1", "M1", DateTime.Now.AddHours(1))); DayPilotGantt1.Tasks.Add(group); }
ASP.NET MVC
Direct Task Loading
You can load tasks by adding Task objects to the Tasks collection. Add task children to Task.Children.
private void LoadTasks() { Task group = Tasks.AddGroup("Group 1", "G1"); group.Children.Add(NewTask("Task 1", "1", DateTime.Today, DateTime.Today.AddDays(2))); group.Children.Add(NewTask("Task 2", "2", DateTime.Today, DateTime.Today.AddDays(2))); group.Children.AddMilestone("Milestone 1", "3", DateTime.Today.AddDays(2)); }
Loading from a Flat Data Source
You can load tasks from an Enumerable of custom objects using TasksFromEnumerable() method.
It accepts two parameters:
- data source (Enumerable)
- field mapping class (TaskFieldMappings)
This method will create the Tasks hierarchy from a flat datasource (typically loaded from a database).
You need to map the Enumerable object properties to the Gantt properties using TaskFieldMappings class.
- TextField - field with Gantt task name
- IdField - field with task id
- StartField - field with task start (DateTime)
- EndField - field with task end (DateTime)
- ParentField - field with parent task id (null for the root tasks)
- MilestoneField - field that holds true for milestones
- TagFields - a comma-separated list of custom fields (use them for automatic column data loading, task and row customization, etc.)
class Gantt : DayPilotGantt { protected override void OnInit(InitArgs e) { // ... LoadTasks(); UpdateWithMessage("Welcome!"); } private void LoadTasks() { TasksFromEnumerable( Db.GetTasksFlat().Rows, new TaskFieldMappings() { TextField = "name", IdField = "id", StartField = "start", EndField = "end", ParentField = "parent_id" } ); } }