MCPInstall

syncfusion-aspnetcore-kanban

Guide for implementing the Syncfusion ASP.NET Core Kanban component using Tag Helper syntax. Use this skill when building task boards, configuring columns and swimlanes, or enabling drag-and-drop. Covers card settings, dialogs, and binding remote data for ASP.NET Core MVC and Razor Pages.

Installs
107
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/syncfusion/aspnetcore-ui-components-skills --skill syncfusion-aspnetcore-kanban
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads syncfusion-aspnetcore-kanban automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Implementing Syncfusion ASP.NET Core Kanban

Table of Contents

Quick Start

// HomeController.cs
public IActionResult Index()
{
    ViewBag.data = new KanbanDataModels().KanbanTasks();
    return View();
}
<!-- Index.cshtml -->
<ejs-kanban id="Kanban" keyField="Status" dataSource="@ViewBag.data">
    <e-kanban-columns>
        <e-kanban-column headerText="To Do" keyField="Open"></e-kanban-column>
        <e-kanban-column headerText="In Progress" keyField="InProgress"></e-kanban-column>
        <e-kanban-column headerText="Testing" keyField="Testing"></e-kanban-column>
        <e-kanban-column headerText="Done" keyField="Close"></e-kanban-column>
    </e-kanban-columns>
    <e-kanban-cardsettings headerField="Title" contentField="Summary"></e-kanban-cardsettings>
</ejs-kanban>

Prerequisites:

  • NuGet: Install-Package Syncfusion.EJ2.AspNet.Core
  • _ViewImports.cshtml: @addTagHelper *, Syncfusion.EJ2
  • _Layout.cshtml: Fluent CSS + ej2.min.js CDN links + <ejs-scripts></ejs-scripts>

→ For full setup details, see references/getting-started.md

When to Use This Skill

Use this skill when you need to:

  • Build a Kanban board — multi-column workflow visualization
  • Configure columns — single/multi-key columns, stacked headers, toggle, drag
  • Add swimlanes — group cards by team, user, or category with frozen rows
  • Enable drag-and-drop — between columns, swimlanes, or external components
  • Implement card dialogs — edit dialog with custom fields, templates, CRUD persistence
  • Bind remote data — OData, WebAPI, UrlAdaptor with CRUD operations
  • Apply sorting — by index, data source order, or custom field
  • Set card priorities — exact-position drop ordering via numeric rank field
  • Add column constraints — min/max card count validation per column
  • Show tooltips — default or template-based hover tooltips
  • Enable virtual scrolling — handle large datasets (100k+ cards) efficiently
  • Configure accessibility — WCAG 2.2 AA, keyboard navigation, screen reader support
  • Localize or RTL — multi-language support and right-to-left layout
  • Filter or search cards — using the query property
  • Change columns dynamically — update column configuration at runtime
  • Handle events — react to card clicks, drags, dialog open/close, data binding, and more
  • Call methods programmatically — add/update/delete cards, open dialogs, show/hide columns, refresh the board
  • Reference all properties — full list of component and sub-model properties with types and defaults

Documentation and Navigation Guide

Setup and First Board

📄 Read: references/getting-started.md

  • NuGet installation and package setup
  • Tag Helper registration in _ViewImports.cshtml
  • CDN configuration (CSS + JS) in _Layout.cshtml
  • Minimal Kanban board with 4 columns
  • Basic swimlane quickstart
  • License key registration

Data Binding

📄 Read: references/data-binding.md

  • Local data binding via @ViewBag.data
  • Remote data: OData, ODataV4, WebAPI, UrlAdaptor
  • <e-data-manager> configuration
  • CRUD operations with insertUrl, updateUrl, removeUrl, crudUrl
  • Custom adaptor pattern
  • actionFailure event handling
  • Ajax loading indicator behavior

Cards

📄 Read: references/cards.md

  • headerField (mandatory unique card ID)
  • showHeader — show/hide card header
  • contentField — card body text field
  • Card template with jsrender syntax
  • selectionType — None, Single, Multiple
  • Card color customization via colorField

Columns

📄 Read: references/columns.md

  • Single-key and multi-key keyField mapping
  • headerText — column display name
  • Column header template
  • allowToggle — collapsible columns
  • isExpanded — initial expand/collapse state
  • Stacked headers (<e-kanban-stackedheaders>)
  • Column-level drag (allowColumnDragAndDrop)
  • showItemCount — display card count in header

Swimlanes

📄 Read: references/swimlane.md

  • keyField — data field to group by
  • textField — display label field
  • Swimlane header template
  • sortBy — sort swimlane rows
  • allowDragAndDrop — enable cross-swimlane card drag
  • showEmptyRow — display empty swimlane rows
  • showItemCount — card count per swimlane
  • enableFrozenRows — sticky swimlane headers on scroll

Drag and Drop

📄 Read: references/drag-and-drop.md

  • Internal column drag (default enabled)
  • allowDragAndDrop="false" — disable all drag
  • Per-column allowDrag/allowDrop flags
  • transitionColumns — restrict allowed column transitions
  • Cross-swimlane drag via swimlaneSettings.allowDragAndDrop
  • External drag: externalDropId property
  • Kanban-to-Kanban drag (dragStop event + deleteCard/addCard)
  • Kanban-to-Treeview and Kanban-to-Schedule integration

Card Edit Dialog

📄 Read: references/dialog.md

  • Default dialog (double-click card)
  • Custom dialog fields via <e-kanban-dialogsettings fields="...">
  • Field types: String, Numeric, TextArea, DropDown, TextBox, Input
  • Custom dialog template with EJ2 component initialization
  • Preventing dialog open with dialogOpen event + args.cancel = true
  • Programmatic add: kanbanObj.openDialog('Add', data)
  • CRUD persistence via UrlAdaptor with server-side EditParams class

Sorting, Priority, and Validation

📄 Read: references/sorting-priority-validation.md

  • <e-kanban-sortsettings> with sortBy, field, direction
  • sortBy values: Index, DataSourceOrder, Custom
  • Priority field: <e-kanban-cardsettings priority="RankId"> for exact-position drops
  • Column min/max card count: minCount, maxCount on <e-kanban-column>
  • Constraint type: Column (default) or Swimlane
  • Visual color indication on constraint violation

Tooltip, Style, and Dimensions

📄 Read: references/tooltip-style-dimensions.md

  • enableTooltip="true" — hover tooltip on cards
  • tooltipTemplate — custom HTML tooltip template
  • CSS class reference for all Kanban elements
  • Sticky header pattern
  • width and height — auto, pixel, percentage values

Persistence, Localization, and Responsive

📄 Read: references/persistence-localization-responsive.md

  • enablePersistence="true" — localStorage state saving
  • locale property + ej.base.L10n.load() script
  • All locale key names for Kanban strings
  • enableRtl="true" — right-to-left layout
  • Mobile responsive behavior (swipe, tap-hold, swimlane menu)

Virtual Scrolling and Accessibility

📄 Read: references/virtual-scrolling-accessibility.md

  • enableVirtualization="true" — on-demand card rendering
  • cardHeight — fixed height required for virtualization
  • Server-side KanbanVirtualization parameter handling
  • WCAG 2.2 AA compliance table
  • WAI-ARIA attributes (aria-label, aria-expanded, aria-selected, etc.)
  • Keyboard shortcuts reference
  • AllowKeyboard="false" — disable keyboard interaction

Events

📄 Read: references/events.md

  • ActionBegin / ActionComplete / ActionFailure — lifecycle and error handling
  • CardClick / CardDoubleClick / CardRendered — card interaction hooks
  • ColumnDrag / ColumnDragStart / ColumnDrop — column reorder events
  • Created / DataBinding / DataBound / DataSourceChanged — initialization and data events
  • DialogOpen / DialogClose — intercept or cancel dialog (use args.cancel = true)
  • Drag / DragStart / DragStop — card drag lifecycle (cross-Kanban scenarios use DragStop)
  • QueryCellInfo — customize column cell elements before render

Methods

📄 Read: references/methods.md

  • AddCard / UpdateCard / DeleteCard — CRUD card operations
  • AddColumn / DeleteColumn — dynamic column management
  • OpenDialog / CloseDialog — programmatic dialog control
  • ShowColumn / HideColumn — toggle column visibility
  • GetCardDetails / GetColumnData / GetSelectedCards / GetSwimlaneData — data retrieval
  • ShowSpinner / HideSpinner — loading indicator control
  • Refresh / RefreshHeader / RefreshUI — board re-render helpers
  • DataBind / Destroy / AppendTo / Inject — component lifecycle utilities

All Properties Reference

📄 Read: references/properties.md

  • Complete list of all <ejs-kanban> root properties with types, defaults, and examples
  • Sub-model properties: CardSettings, Columns, SwimlaneSettings, SortSettings, DialogSettings, StackedHeaders
  • Enum values: ConstraintType, SelectionType, SortOrderBy, SortDirection

How-To Recipes

📄 Read: references/how-to.md

  • Dynamically change columns at runtime
  • Filter cards using the query property with dropdown
  • Search cards by field values with text input
  • Add header double-click event handler

Common Patterns

Swimlane Board with Remote Data

Use when: You need to group cards by user/team and load data from an API endpoint (OData, WebAPI, etc.) instead of a local collection.

<ejs-kanban id="Kanban" keyField="Status">
    <e-data-manager url="/api/tasks" adaptor="ODataV4Adaptor"></e-data-manager>
    <e-kanban-columns>
        <e-kanban-column headerText="To Do" keyField="Open"></e-kanban-column>
        <e-kanban-column headerText="In Progress" keyField="InProgress"></e-kanban-column>
        <e-kanban-column headerText="Done" keyField="Close"></e-kanban-column>
    </e-kanban-columns>
    <e-kanban-cardsettings headerField="Title" contentField="Summary"></e-kanban-cardsettings>
    <e-kanban-swimlanesettings keyField="Assignee" textField="Assignee"></e-kanban-swimlanesettings>
</ejs-kanban>

Board with Column Constraints

Use when: You need to enforce WIP (Work-In-Progress) limits — preventing too few or too many cards from stacking in a column.

<ejs-kanban id="Kanban" keyField="Status" dataSource="@ViewBag.data">
    <e-kanban-columns>
        <e-kanban-column headerText="To Do" keyField="Open"></e-kanban-column>
        <e-kanban-column headerText="In Progress" keyField="InProgress"
            minCount="3" maxCount="5" showItemCount="true"></e-kanban-column>
        <e-kanban-column headerText="Done" keyField="Close"></e-kanban-column>
    </e-kanban-columns>
    <e-kanban-cardsettings headerField="Title" contentField="Summary"></e-kanban-cardsettings>
</ejs-kanban>

Board with Card Edit Dialog + CRUD

Use when: Users need to create, edit, or delete cards through a dialog form, with changes persisted to the server via UrlAdaptor.

<ejs-kanban id="Kanban" keyField="Status">
    <e-data-manager url="/Home/UpdateData" adaptor="UrlAdaptor"
        crudUrl="/Home/UpdateData"></e-data-manager>
    <e-kanban-columns>
        <e-kanban-column headerText="To Do" keyField="Open"></e-kanban-column>
        <e-kanban-column headerText="Done" keyField="Close"></e-kanban-column>
    </e-kanban-columns>
    <e-kanban-cardsettings headerField="Title" contentField="Summary"></e-kanban-cardsettings>
    <e-kanban-dialogsettings fields="@ViewBag.dialogFields"></e-kanban-dialogsettings>
</ejs-kanban>

Virtual Scrolling Board

Use when: The dataset is large (hundreds to thousands of cards) and rendering all cards at once would cause performance issues.

<ejs-kanban id="Kanban" keyField="Status" dataSource="@ViewBag.data"
    enableVirtualization="true">
    <e-kanban-columns>
        <e-kanban-column headerText="To Do" keyField="Open"></e-kanban-column>
        <e-kanban-column headerText="In Progress" keyField="InProgress"></e-kanban-column>
        <e-kanban-column headerText="Done" keyField="Close"></e-kanban-column>
    </e-kanban-columns>
    <e-kanban-cardsettings headerField="Title" contentField="Summary"
        selectionType="Multiple"></e-kanban-cardsettings>
</ejs-kanban>

Key Properties Reference

PropertyTagValuesPurpose
keyField<ejs-kanban>Field name stringMaps cards to columns by status value
dataSource<ejs-kanban>@ViewBag.dataLocal data collection
enableVirtualization<ejs-kanban>true/falseVirtual scrolling for large data
enableTooltip<ejs-kanban>true/falseHover tooltip on cards
tooltipTemplate<ejs-kanban>Template ID stringCustom tooltip HTML template
allowDragAndDrop<ejs-kanban>true/falseGlobal drag-and-drop toggle
externalDropId<ejs-kanban>Element ID arrayTarget IDs for external drop
enablePersistence<ejs-kanban>true/falseSave state to localStorage
locale<ejs-kanban>Locale string (e.g. "de")UI string localization
enableRtl<ejs-kanban>true/falseRight-to-left layout
width<ejs-kanban>auto/px/%Board width
height<ejs-kanban>auto/px/%Board height
AllowKeyboard<ejs-kanban>true/falseKeyboard navigation toggle
headerField<e-kanban-cardsettings>Field name stringUnique card ID field (mandatory)
contentField<e-kanban-cardsettings>Field name stringCard body text field
template<e-kanban-cardsettings>Template ID stringCustom card HTML template
selectionType<e-kanban-cardsettings>None/Single/MultipleCard selection mode
priority<e-kanban-cardsettings>Field name stringNumeric rank field for ordering
showHeader<e-kanban-cardsettings>true/falseShow/hide card header
keyField<e-kanban-column>Status value(s)Column card filter (single or comma-separated)
headerText<e-kanban-column>Display stringColumn title
allowToggle<e-kanban-column>true/falseCollapsible column
isExpanded<e-kanban-column>true/falseInitial expand state
minCount<e-kanban-column>IntegerMinimum cards constraint
maxCount<e-kanban-column>IntegerMaximum cards constraint
showItemCount<e-kanban-column>true/falseShow card count badge
allowDrag<e-kanban-column>true/falseAllow cards to be dragged from column
allowDrop<e-kanban-column>true/falseAllow cards to be dropped into column
keyField<e-kanban-swimlanesettings>Field name stringSwimlane grouping field
textField<e-kanban-swimlanesettings>Field name stringSwimlane display label field
sortBy<e-kanban-sortsettings>Index/DataSourceOrder/CustomCard sort strategy
field<e-kanban-sortsettings>Field name stringField to sort by
direction<e-kanban-sortsettings>Ascending/DescendingSort direction

Data Model

The standard KanbanDataModels class for all examples:

public class KanbanDataModels
{
    public string Id { get; set; }
    public string Title { get; set; }
    public string Status { get; set; }      // Maps to keyField
    public string Summary { get; set; }     // Card body content
    public string Type { get; set; }
    public string Priority { get; set; }
    public string Tags { get; set; }
    public double Estimate { get; set; }
    public string Assignee { get; set; }    // Used for swimlane grouping
    public int RankId { get; set; }         // Numeric rank for priority ordering
    public string Color { get; set; }       // Optional card color field
}

FAQ

What does the syncfusion-aspnetcore-kanban skill do?

Guide for implementing the Syncfusion ASP.NET Core Kanban component using Tag Helper syntax. Use this skill when building task boards, configuring columns and swimlanes, or enabling drag-and-drop. Covers card settings, dialogs, and binding remote data for ASP.NET Core MVC and Razor Pages.

How do I install syncfusion-aspnetcore-kanban?

Run npx skills add https://github.com/syncfusion/aspnetcore-ui-components-skills --skill syncfusion-aspnetcore-kanban in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-aspnetcore-kanban/ (personal) or .claude/skills/syncfusion-aspnetcore-kanban/ (project).

Which AI agents can use syncfusion-aspnetcore-kanban?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is syncfusion-aspnetcore-kanban safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains syncfusion-aspnetcore-kanban?

It is published by syncfusion in syncfusion/aspnetcore-ui-components-skills. It has 107 recorded installs.

More from syncfusion/aspnetcore-ui-components-skills

View all →

syncfusion-aspnetcore-charts

syncfusion/aspnetcore-ui-components-skills

Implements Syncfusion ASP.NET Core Chart (SfChart) for data visualization. Use this when building charts, visualizing time-series or categorical data, or creating dashboards. Covers series configuration (line, bar, pie), axes, tooltips, legends, and customization for ASP.NET Core applications.

Frontend & Design112 installs

syncfusion-aspnetcore-common

syncfusion/aspnetcore-ui-components-skills

CONFIGURATION GUIDE — Assist with Syncfusion ASP.NET Core EJ2 components setup, localization, and version compatibility. Use when: installing Syncfusion packages, configuring globalization/localization, selecting compatible versions.

Frontend & Design111 installs

syncfusion-aspnetcore-license

syncfusion/aspnetcore-ui-components-skills

Open the skill to read its SKILL.md instructions.

Frontend & Design111 installs

syncfusion-aspnetcore-grid

syncfusion/aspnetcore-ui-components-skills

Implements Syncfusion ASP.NET Core Grid component for feature-rich data tables and grids. Use this when working with data display, sorting, filtering, grouping, aggregates, editing, or exporting. This skill covers grid configuration, CRUD operations, virtual scrolling or infinite scrolling, hierarchy grids, state persistence, and advanced data management features for data-intensive applications.

Frontend & Design110 installs

syncfusion-aspnetcore-security

syncfusion/aspnetcore-ui-components-skills

Open the skill to read its SKILL.md instructions.

Security108 installs

syncfusion-aspnetcore-gantt-chart

syncfusion/aspnetcore-ui-components-skills

Implement Syncfusion ASP.NET Core 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 Core applications (Tag Helper/Razor Pages/MVC). This skill covers data binding, task management, editing, filtering, export, and timeline customization.

Popular frontend & design skills

View category →

setup-matt-pocock-skills

mattpocock/skills

Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

Frontend & Design1.1M installs

frontend-design

anthropics/skills

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

OfficialFrontend & Design1M installs

hyperframes-animation

heygen-com/hyperframes

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

prototype

mattpocock/skills

Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.

Frontend & Design999.2K installs

hyperframes-core

heygen-com/hyperframes

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

Frontend & Design930.5K installs

vercel-react-best-practices

vercel-labs/agent-skills

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

OfficialFrontend & Design843.1K installs