Loading...
Loading...
Implement Syncfusion Blazor Kanban board component (SfKanban) for card-based workflow management. Use this when building Kanban boards, task management UIs with swimlanes, or drag-and-drop column workflows in Blazor applications. This skill covers data binding, column and card configuration, swimlane organization, drag-and-drop interactions, dialog editing, sorting, WIP validation, accessibility, localization, and responsive mode.
npx skill4agent add syncfusion/blazor-ui-components-skills syncfusion-blazor-kanbandotnet add package Syncfusion.Blazor.Kanban
dotnet add package Syncfusion.Blazor.Themesusing Syncfusion.Blazor;
builder.Services.AddSyncfusionBlazor();@using Syncfusion.Blazor
@using Syncfusion.Blazor.Kanban<link href="_content/Syncfusion.Blazor.Themes/bootstrap5.css" rel="stylesheet" />
<script src="_content/Syncfusion.Blazor.Core/scripts/syncfusion-blazor.min.js" type="text/javascript"></script><SfKanban TValue="TasksModel" KeyField="Status" DataSource="Tasks">
<KanbanColumns>
<KanbanColumn HeaderText="To Do" KeyField="@(new List<string>() {"Open"})"></KanbanColumn>
<KanbanColumn HeaderText="In Progress" KeyField="@(new List<string>() {"InProgress"})"></KanbanColumn>
<KanbanColumn HeaderText="Testing" KeyField="@(new List<string>() {"Testing"})"></KanbanColumn>
<KanbanColumn HeaderText="Done" KeyField="@(new List<string>() {"Close"})"></KanbanColumn>
</KanbanColumns>
<KanbanCardSettings HeaderField="Title" ContentField="Summary"></KanbanCardSettings>
</SfKanban>
@code {
public class TasksModel
{
public string Id { get; set; }
public string Title { get; set; }
public string Status { get; set; }
public string Summary { get; set; }
public string Assignee { get; set; }
}
public List<TasksModel> Tasks = new List<TasksModel>()
{
new TasksModel { Id = "Task 1", Title = "BLAZ-29001", Status = "Open", Summary = "Analyze the new requirements gathered from the customer.", Assignee = "Nancy Davloio" },
new TasksModel { Id = "Task 2", Title = "BLAZ-29002", Status = "InProgress", Summary = "Improve application performance", Assignee = "Andrew Fuller" },
new TasksModel { Id = "Task 3", Title = "BLAZ-29003", Status = "Open", Summary = "Arrange a web meeting with the customer.", Assignee = "Janet Leverling" },
new TasksModel { Id = "Task 4", Title = "BLAZ-29004", Status = "Testing", Summary = "Fix the issues reported by the customer.", Assignee = "Janet Leverling" },
new TasksModel { Id = "Task 5", Title = "BLAZ-29005", Status = "Close", Summary = "Fix the issues reported in Safari browser.", Assignee = "Steven walker" },
};
}| Topic | Reference File |
|---|---|
| Getting started (WebAssembly/Server/Web App) | getting-started.md |
| Data binding (local, remote, ExpandoObject, Observable) | data-binding.md |
| Column configuration | columns.md |
| Card customization | cards.md |
| Drag and drop (internal & external) | drag-and-drop.md |
| Swimlane grouping | swimlane.md |
| Card editing dialog | dialog.md |
| Events reference | events.md |
| Card sorting | sort.md |
| Workflow restrictions | workflow.md |
| WIP validation (MinCount/MaxCount) | validation.md |
| Styling and CSS classes | style.md |
| Accessibility (WCAG, keyboard navigation) | accessibility.md |
| Localization and RTL | localization.md |
| Tooltips | tooltip.md |
| Responsive mode | responsive-mode.md |
| Height and width dimensions | dimensions.md |
<SfKanban TValue="TasksModel" KeyField="Status" DataSource="Tasks">
<KanbanColumns>
<KanbanColumn HeaderText="To Do" KeyField="@(new List<string>() {"Open"})"></KanbanColumn>
<KanbanColumn HeaderText="In Progress" KeyField="@(new List<string>() {"InProgress"})"></KanbanColumn>
<KanbanColumn HeaderText="Done" KeyField="@(new List<string>() {"Close"})"></KanbanColumn>
</KanbanColumns>
<KanbanCardSettings HeaderField="Title" ContentField="Summary"></KanbanCardSettings>
<KanbanSwimlaneSettings KeyField="Assignee"></KanbanSwimlaneSettings>
</SfKanban><SfKanban TValue="TasksModel" KeyField="Status" DataSource="Tasks">
<KanbanColumns>
<KanbanColumn HeaderText="Backlog" KeyField="@(new List<string>() {"Open"})" MinCount="2"></KanbanColumn>
<KanbanColumn HeaderText="In Progress" KeyField="@(new List<string>() {"InProgress"})" MaxCount="3"></KanbanColumn>
<KanbanColumn HeaderText="Done" KeyField="@(new List<string>() {"Close"})"></KanbanColumn>
</KanbanColumns>
<KanbanCardSettings HeaderField="Title" ContentField="Summary"></KanbanCardSettings>
</SfKanban><SfKanban TValue="TasksModel" KeyField="Status" DataSource="Tasks">
<KanbanColumns>
<KanbanColumn HeaderText="To Do" KeyField="@(new List<string>() {"Open"})"></KanbanColumn>
<KanbanColumn HeaderText="In Progress" KeyField="@(new List<string>() {"InProgress"})"></KanbanColumn>
<KanbanColumn HeaderText="Done" KeyField="@(new List<string>() {"Close"})"></KanbanColumn>
</KanbanColumns>
<KanbanCardSettings HeaderField="Title" ContentField="Summary"></KanbanCardSettings>
<KanbanSortSettings SortBy="SortOrderBy.Index" Field="RankId"></KanbanSortSettings>
</SfKanban>| Property | Component | Description |
|---|---|---|
| | Maps the data field that determines which column a card belongs to |
| | Binds local or remote data to the Kanban |
| | Enables/disables drag-and-drop (default: true) |
| | Shows card details on hover |
| | Enables right-to-left layout |
| | Maps the unique ID field for card headers |
| | Maps the field shown in card body |
| | One or more status values that map cards to this column |
| | Allows column expand/collapse |
| | Minimum card count for WIP validation |
| | Maximum card count for WIP validation |
| | Restricts cards to only drop into specified columns |
| | Prevents cards from being dropped into a column |
| | Prevents cards from being dragged from a column |
| | Groups cards into swimlane rows by this field |
| | Sorting mode: DataSourceOrder, Index, or Custom |