KanbanBoard Component — sgcHTML | eSeGeCe

KanbanBoard

TsgcHTMLComponent_KanbanBoard — render a kanban board of columns and cards, with optional SortableJS drag-and-drop, in Delphi, C++ Builder and .NET.

TsgcHTMLComponent_KanbanBoard

Add columns, drop cards into each (or bind a dataset grouped by status), optionally enable dragging, then read the HTML property.

Component class

TsgcHTMLComponent_KanbanBoard

Renders

Bootstrap 5 board + scoped CSS (optional SortableJS)

Family

Data & Tables

Languages

Delphi, C++ Builder, .NET

Add columns, add cards, render it

Call AddColumn for each lane, push cards with the column's AddCard, enable DragEnabled if you want reordering, then read HTML.

uses
  sgcHTML_Enums, sgcHTML_Component_KanbanBoard;

var
  oBoard: TsgcHTMLComponent_KanbanBoard;
  oCol: TsgcHTMLKanbanColumn;
begin
  oBoard := TsgcHTMLComponent_KanbanBoard.Create(nil);
  try
    oBoard.BoardID := 'sprint';
    oBoard.Height := '500px';
    oBoard.DragEnabled := True;

    oCol := oBoard.AddColumn('To Do', hcSecondary);
    oCol.AddCard('Draft spec', 'Outline the API.', hcLight, 'Ana');

    oBoard.AddColumn('Done', hcSuccess);

    WebModule.Response := oBoard.HTML;   // board + scoped CSS
  finally
    oBoard.Free;
  end;
end;

// Or bind it straight to a dataset (grouped by status):
oBoard.LoadFromDataSet(qryTasks, 'Status', 'Title', 'Notes', 'Owner');
// includes: sgcHTML_Enums.hpp, sgcHTML_Component_KanbanBoard.hpp

TsgcHTMLComponent_KanbanBoard *oBoard = new TsgcHTMLComponent_KanbanBoard(NULL);
try
{
  oBoard->BoardID = "sprint";
  oBoard->Height = "500px";
  oBoard->DragEnabled = true;

  TsgcHTMLKanbanColumn *oCol = oBoard->AddColumn("To Do", hcSecondary);
  oCol->AddCard("Draft spec", "Outline the API.", hcLight, "Ana");

  oBoard->AddColumn("Done", hcSuccess);

  String html = oBoard->HTML;   // board + scoped CSS
}
__finally
{
  delete oBoard;
}
using esegece.sgcWebSockets;

var board = new TsgcHTMLComponent_KanbanBoard();
board.BoardID = "sprint";
board.Height = "500px";
board.DragEnabled = true;

var col = board.AddColumn("To Do", TsgcHTMLColor.hcSecondary);
col.AddCard("Draft spec", "Outline the API.", TsgcHTMLColor.hcLight, "Ana");

board.AddColumn("Done", TsgcHTMLColor.hcSuccess);

string html = board.HTML;   // board + scoped CSS

Key properties & methods

The members you reach for most often.

Columns

Columns holds the lanes, each with a Title, enum Color, ColumnID and a Cards collection.

Adding columns

AddColumn(aTitle, aColor) appends a lane and returns the TsgcHTMLKanbanColumn so you can keep adding cards to it.

Cards

A column's AddCard(aTitle, aDescription, aColor, aAssignee, aTag, aTagColor) adds a card with an optional description, assignee and coloured tag badge.

Dataset binding

LoadFromDataSet(aDataSet, aGroupField, aTitleField, aDescField, aAssigneeField) builds one column per distinct group value and a card per row.

Drag-and-drop

DragEnabled injects SortableJS so cards can be dragged between columns; leave it off for a static board.

Layout

BoardID identifies the board; Height caps the scroll area; HTML returns the board plus its scoped CSS.

Keep exploring

Online HelpFull API reference and usage guide for this component.
All sgcHTML ComponentsBrowse the full feature matrix of 80+ components.
Download Free TrialThe 30-day trial ships the 60.HTML demo projects.
PricingSingle, Team and Site licenses with full source code.
Best value: All-AccessEvery eSeGeCe product, Premium Support included, from €1,059/year.
See All-Access pricing

Ready to Get Started?

Download the free trial and start building web UIs in Delphi, C++ Builder and .NET.