skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
syncfusion/aspnetcore-ui-components-skills107 installs

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.

How do I install this agent skill?

npx skills add https://github.com/syncfusion/aspnetcore-ui-components-skills --skill syncfusion-aspnetcore-kanban
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    This skill provides comprehensive documentation and implementation guides for the Syncfusion ASP.NET Core Kanban component. It covers setup, data binding, and UI customization using standard enterprise patterns. No malicious behavior or security risks were identified; the skill actively promotes security best practices by documenting built-in HTML sanitization features.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

What does this agent skill do?

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
}

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/syncfusion/aspnetcore-ui-components-skills/syncfusion-aspnetcore-kanban">View syncfusion-aspnetcore-kanban on skillZs</a>