syncfusion/aspnetmvc-ui-components-skills · Archived

syncfusion-aspnetmvc-gantt-chart

Implement Syncfusion ASP.NET MVC Gantt Chart component (EJ2) for project management and task scheduling.

First seen Jul 23, 2026

Installation

$ npx skills add syncfusion/aspnetmvc-ui-components-skills --skill syncfusion-aspnetmvc-gantt-chart

Summary

  • Implement Syncfusion ASP.NET MVC Gantt Chart component (EJ2) for project management and task scheduling.
  • Use this when working with Gantt charts, project timelines, task dependencies, or resource allocation in ASP.NET MVC applications using @Html.EJS().Gantt() Razor helpers.
  • Covers data binding, task management, editing, filtering, sorting, export, timeline customization, events, and public methods.

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from syncfusion/aspnetmvc-ui-components-skills · top by installs.

npx skills add syncfusion/aspnetmvc-ui-components-skills

Browse all from syncfusion/aspnetmvc-ui-components-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Default branch master
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version34.1.29
More metadata
author
Syncfusion Inc
version
34.1.29

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 16,978 B
  • docs SUMMARY.md 442 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 3 installs

SKILL.md

Syncfusion ASP.NET MVC Gantt Chart

The Syncfusion EJ2 Gantt Chart control for ASP.NET MVC renders a project schedule as a combined tree grid (left) and chart (right) separated by a splitter. Tasks are displayed as taskbars on a timeline. It supports task editing, dependencies, resources, baselines, critical path, filtering, sorting, and Excel/PDF export.

When to Use This Skill

Use this skill when you need to:

  • Set up and render a Gantt Chart in an ASP.NET MVC view using @Html.EJS().Gantt()
  • Bind local or remote data to the Gantt control from a controller action
  • Configure task fields, columns, and the chart timeline
  • Enable editing (cell, dialog, taskbar), manage tasks (add/delete/update)
  • Define task dependencies (FS, SS, FF, SF) and predecessors
  • Assign and display resources on tasks
  • Filter, sort, search, or select rows/cells
  • Export to Excel, CSV, or PDF
  • Customize the timeline, taskbars, labels, tooltips, holidays, event markers and data markers/indicators
  • Configure task scheduling modes (Auto/Manual/Custom)
  • Enable undo/redo, state persistence, virtual scrolling, or critical path
  • Scroll the component, configure row height, or drag-and-drop rows
  • Set timezone or localise the UI for different cultures and RTL languages
  • Handle events (ActionBegin, ActionComplete, CellEdit) or call public methods programmatically

Documentation and Navigation Guide

Getting Started

📄 Read: [references/getting-started.md](references/getting-started.md)

  • NuGet package installation (Syncfusion.EJ2.MVC5)
  • Namespace import and CDN stylesheet/script setup
  • ScriptManager registration in _Layout.cshtml
  • First Gantt control (Index.cshtml + controller)
  • Mapping task fields and defining columns
  • Enabling editing, filtering, sorting

Data Binding

📄 Read: [references/data-binding.md](references/data-binding.md)

  • Local hierarchical data binding (parent/child objects with SubTasks)
  • Local flat/self-referential data binding (Id + ParentID mapping)
  • Remote data with DataManager (URL Adaptor, OData, Web API)
  • Load-on-demand with HasChildMapping

Columns

📄 Read: [references/columns.md](references/columns.md)

  • Defining columns with Field, HeaderText, Width, Format, TextAlign
  • Custom column headers and header templates
  • Column templates and value accessors
  • Checkbox column, frozen columns
  • Column reordering, resizing, spanning
  • Responsive columns, WBS column, column menu

Managing Tasks (Editing)

📄 Read: [references/managing-tasks.md](references/managing-tasks.md)

  • IsPrimaryKey requirement for CRUD
  • Cell editing, dialog editing, taskbar editing
  • Adding and deleting tasks
  • Indent / outdent tasks
  • Splitting and merging tasks
  • Customize Dependency, Segments, Resources tabs in the edit/add dialog using AdditionalParams
  • Customize Notes tab (RTE) in the edit/add dialog using AdditionalParams (for example inlineMode)
  • Server-side CRUD persistence
  • Edit validation and error handling

Task Dependencies

📄 Read: [references/task-dependency.md](references/task-dependency.md)

  • SS, SF, FS, FF relationship types
  • Mapping Dependency field in data source
  • Predecessor offset with duration units
  • Dependency editing via mouse drag
  • Validation, error handling, parent dependencies

Resources

📄 Read: [references/resources.md](references/resources.md)

  • Resource collection and ResourceFields mapping
  • Assigning resources to tasks (ResourceInfo)
  • Resource view (ViewType)
  • Multi-taskbar display
  • Resource customization

Filtering

📄 Read: [references/filtering.md](references/filtering.md)

  • Menu filtering (AllowFiltering(true)) — column-level filter menu
  • Excel-like filtering (FilterSettings.Type = Excel)
  • Filter hierarchy modes (Parent, Child, Both, None)
  • Toolbar search / SearchSettings
  • Filter operators, initial filter state, programmatic filtering

Sorting

📄 Read: [references/sorting.md](references/sorting.md)

  • Enabling sorting, multi-column sort (AllowSorting(true))
  • Initial sort configuration via SortSettings
  • Programmatic sort (sortModule.sortColumn) / clear sort

Timeline

📄 Read: [references/timeline.md](references/timeline.md)

  • Top tier and bottom tier configuration
  • Zooming in and out (ZoomIn, ZoomOut, ZoomToFit)
  • Custom timeline units and formats
  • Timeline template

Task Scheduling

📄 Read: [references/task-scheduling.md](references/task-scheduling.md)

  • Auto, Manual, Custom scheduling modes (TaskMode)
  • Duration units (Day, Hour, Minute, Week, Month)
  • Unscheduled tasks
  • Task constraints (ALAP, ASAP, FNLT, SNLT, MSO, MFO)
  • Baseline display

Selection

📄 Read: [references/selection.md](references/selection.md)

  • Row selection and cell selection
  • Single/multiple selection modes (SelectionSettings)
  • Toggle selection and hover highlighting
  • Programmatic selection (selectionModule.selectRow, selectRows, selectCell)
  • Selection events (RowSelecting, RowSelected, CellSelecting, CellSelected)

Scrolling

📄 Read: [references/scrolling.md](references/scrolling.md)

  • Configure Height and Width to enable scrollbars
  • Responsive sizing with 100% and parent container height requirements
  • Programmatic timeline scroll via scrollToDate()
  • Set vertical scroll with setScrollTop() and updateChartScrollOffset()

Rows

📄 Read: [references/rows.md](references/rows.md)

  • Configure global RowHeight and per-row expand state via TaskFields.ExpandState
  • Collapse all parent tasks at load with CollapseAllParentTasks
  • Expand/collapse with toolbar and public methods (expandAll(), collapseAll(), etc.)
  • Customize expand/collapse behavior using Expanding, Collapsing, Expanded, and Collapsed
  • Customize row appearance with RowDataBound and taskbar styling with QueryTaskbarInfo
  • Styling alternate rows and per-cell customization (RowDataBound + QueryCellInfo)
  • Row spanning via rowSpan in QueryCellInfo
  • Control overflow rendering with ClipMode
  • Row template (RowTemplate)

Row Drag And Drop

📄 Read: [references/row-drag-and-drop.md](references/row-drag-and-drop.md)

  • Enable row reordering with AllowRowDragAndDrop(true) and SelectionSettings.Type = Multiple for multi-drag
  • Allow taskbar-based drag with AllowTaskbarDragAndDrop(true) and edit mode Auto
  • Lifecycle events: RowDragStartHelper, RowDragStart, RowDrag, RowDrop
  • Programmatic reordering via reorderRows(fromIndexes, toIndex, position)

Timezone

📄 Read: [references/timezone.md](references/timezone.md)

  • Set Timezone() (e.g., "UTC", "America/New_York") to normalise displayed dates across clients
  • CRUD operations respect configured timezone and convert for server persistence
  • Utility methods: ej.schedule.Timezone().offset(), convert(), and remove() for programmatic conversions

Globalization

📄 Read: [references/globalization.md](references/globalization.md)

  • Localize UI text via Locale() and ej.base.L10n.load() translation objects
  • Internationalization: load CLDR files to format dates and numbers per culture
  • Enable RTL layout with EnableRtl(true) for right-to-left languages

Export (Excel & PDF)

📄 Read: [references/export.md](references/export.md)

  • Excel export with column and data customization (AllowExcelExport, excelExport())
  • CSV export (csvExport())
  • PDF export with themes and custom columns (AllowPdfExport, pdfExport())
  • Exporting multiple Gantt charts to a single PDF or Excel file

Toolbar

📄 Read: [references/toolbar.md](references/toolbar.md)

  • Built-in toolbar items (Add, Edit, Delete, Search, ExpandAll, CollapseAll, ExcelExport, PdfExport, ZoomIn, ZoomOut, ZoomToFit, UndoRedo)
  • Custom toolbar items and click handling
  • Enabling/disabling toolbar items programmatically

Context Menu

📄 Read: [references/context-menu.md](references/context-menu.md)

  • Enable context menu with EnableContextMenu(true)
  • Built-in context menu items for CRUD operations
  • Custom context menu items and click event handling

Taskbar

📄 Read: [references/taskbar.md](references/taskbar.md)

  • Taskbar height, custom templates (TaskbarTemplate, ParentTaskbarTemplate, MilestoneTemplate)
  • Progress bar customization and connector line configuration
  • Data markers / indicators (per-task symbols with tooltip labels)
  • Segment taskbars (split tasks) rendering
  • QueryTaskbarInfo event for per-task styling

Labels and Tooltips

📄 Read: [references/labels-and-tooltips.md](references/labels-and-tooltips.md)

  • Left/right/inside label templates on taskbars (LabelSettings)
  • Taskbar tooltip customization via TooltipSettings
  • Connector line and baseline tooltips
  • BeforeTooltipRender event

Event Markers

📄 Read: [references/event-markers.md](references/event-markers.md)

  • Add event markers with EventMarkers builder: Day, Label, CssClass
  • Multiple event markers in a single Gantt
  • Dynamic event markers

Critical Path

📄 Read: [references/critical-path.md](references/critical-path.md)

  • Enable critical path highlighting with EnableCriticalPath(true)
  • Critical path rendering and customization via QueryTaskbarInfo
  • Critical slack value configuration

Splitter

📄 Read: [references/splitter.md](references/splitter.md)

  • Configure grid/chart pane ratio with SplitterSettings
  • Set splitter position by column index, percentage, or pixel
  • Programmatic splitter position update via setSplitterPosition()

Undo and Redo

📄 Read: [references/undo-redo.md](references/undo-redo.md)

  • Enable undo/redo via toolbar items or Ctrl+Z / Ctrl+Y with EnableUndoRedo(true)
  • Configure undo-redo history size (UndoRedoStepsCount)
  • Supported actions and programmatic undo() / redo() calls

State Persistence

📄 Read: [references/state-persistence.md](references/state-persistence.md)

  • Enable persistence with EnablePersistence(true) (saves to localStorage)
  • Persisted properties: filter, sort, column width, scroll position, zoom level
  • Clearing persisted state programmatically

Immutable Mode

📄 Read: [references/immutable-mode.md](references/immutable-mode.md)

  • Enable EnableImmutableMode(true) to prevent re-render of unchanged rows
  • Performance benefit for large data sets with frequent updates
  • Limitations and usage patterns

Virtual Scroll

📄 Read: [references/virtual-scroll.md](references/virtual-scroll.md)

  • Enable row virtualization with EnableVirtualization(true)
  • Enable timeline virtualization with EnableTimelineVirtualization(true)
  • Performance characteristics and known limitations

Loading Animation

📄 Read: [references/loading-animation.md](references/loading-animation.md)

  • Built-in spinner shown during data load
  • Show/hide loading indicator programmatically via showSpinner() / hideSpinner()
  • LoadingIndicator with IndicatorType.Shimmer or IndicatorType.Spinner

Style and Appearance

📄 Read: [references/style-and-appearance.md](references/style-and-appearance.md)

  • Applying Syncfusion themes (Bootstrap, Material, Fabric, High Contrast)
  • CSS class overrides for taskbars, grid rows, and header
  • QueryTaskbarInfo event for per-task styling
  • GridLines enum (Horizontal, Vertical, Both, None)

Events

📄 Read: [references/events.md](references/events.md)

  • Wire events via builder methods (.ActionBegin("fn"), .ActionComplete("fn"), .ActionFailure("fn"))
  • ActionBegin — cancellable hook before every CRUD, filter, sort, zoom, and dependency action
  • ActionComplete — post-action callback with requestType reference table
  • CellEdit — prevent specific cells or rows from entering edit mode
  • BeforeTooltipRender — customise or suppress any tooltip dynamically
  • Row/cell selection events: RowSelecting, RowSelected, RowDeselecting, RowDeselected, CellSelecting, CellSelected
  • Export events: BeforeExcelExport, BeforePdfExport, ExcelExportComplete, PdfExportComplete

Public Methods

📄 Read: [references/methods.md](references/methods.md)

  • Data access: getCurrentViewData(), getRecordByID(), getTaskByUniqueID(), getRowByID()
  • Row expand/collapse: expandAll(), collapseAll(), expandByID(), collapseByID(), expandByIndex()
  • Task utilities: convertToMilestone(), updateTaskId(), updateDataSource(), updateRecordByID()
  • Scrolling: scrollToDate(), scrollToTask(), setScrollTop(), updateChartScrollOffset()
  • Search: search(keyword) — programmatic search across displayed columns
  • Lifecycle: refresh(), dataBind(), addEventListener(), removeEventListener()

Quick Start Example

Controller (HomeController.cs):

public ActionResult Index()
{
    ViewBag.GanttData = GetGanttData();
    return View();
}

public static List<GanttDataSource> GetGanttData()
{
    return new List<GanttDataSource>
    {
        new GanttDataSource
        {
            TaskId = 1, TaskName = "Project Initiation",
            StartDate = new DateTime(2024, 4, 2), EndDate = new DateTime(2024, 4, 21),
            SubTasks = new List<GanttDataSource>
            {
                new GanttDataSource { TaskId = 2, TaskName = "Identify site", StartDate = new DateTime(2024, 4, 2), Duration = 4, Progress = 70 },
                new GanttDataSource
                {
                    TaskId = 3,
                    TaskName = "Soil test",
                    StartDate = new DateTime(2024, 4, 2),
                    Duration = 4,
                    Progress = 50,
                    Predecessor = "2FS",
                    Indicators = new List<GanttIndicator>
                    {
                        new GanttIndicator { Date = new DateTime(2024, 4, 4), IconClass = "e-btn-icon e-notes-info", Label = "Mid-review" }
                    }
                }
            }
        }
    };
}

public class GanttDataSource
{
    public int TaskId { get; set; }
    public string TaskName { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
    public int? Duration { get; set; }
    public int Progress { get; set; }
    public string Predecessor { get; set; }
    public List<GanttIndicator> Indicators { get; set; }
    public List<GanttDataSource> SubTasks { get; set; }
}

public class GanttIndicator
{
    public string IconClass { get; set; }
    public string Label { get; set; }
    public DateTime Date { get; set; }
}

View (Index.cshtml):

@Html.EJS().Gantt("gantt")
    .DataSource((IEnumerable<object>)ViewBag.GanttData)
    .Height("450px")
    .TaskFields(tf => tf
        .Id("TaskId")
        .Name("TaskName")
        .StartDate("StartDate")
        .EndDate("EndDate")
        .Duration("Duration")
        .Progress("Progress")
        .Indicators("Indicators")
        .Dependency("Predecessor")
        .Child("SubTasks")
    )
    .EditSettings(es => es.AllowEditing(true).AllowAdding(true).AllowDeleting(true).AllowTaskbarEditing(true))
    .Toolbar(new List<string> { "Add", "Edit", "Delete", "Update", "Cancel", "Search" })
    .AllowSorting(true)
    .AllowFiltering(true)
    .Render()

Common Patterns

Pass resources from controller

ViewBag.Resources = GetResources(); // List<GanttResource>
@Html.EJS().Gantt("gantt")
    .DataSource((IEnumerable<object>)ViewBag.GanttData)
    .Resources((IEnumerable<object>)ViewBag.Resources)
    .ResourceFields(rf => rf.Id("ResourceId").Name("ResourceName"))
    .TaskFields(tf => tf.ResourceInfo("ResourceId") /* other fields */ )
    .Render()

Enable critical path

@Html.EJS().Gantt("gantt")
    .EnableCriticalPath(true)
    /* other config */
    .Render()

Enable Excel and PDF export with toolbar

@Html.EJS().Gantt("gantt")
    .AllowExcelExport(true)
    .AllowPdfExport(true)
    .Toolbar(new List<string> { "ExcelExport", "PdfExport" })
    .ToolbarClick("toolbarClick")
    .Render()

<script>
function toolbarClick(args) {
    var ganttObj = document.getElementById('gantt').ej2_instances[0];
    if (args.item.id === 'gantt_excelexport') ganttObj.excelExport();
    if (args.item.id === 'gantt_pdfexport') ganttObj.pdfExport();
}
</script>