Transfer Component — sgcHTML | eSeGeCe

Transfer

TsgcHTMLComponent_Transfer — render a dual-listbox transfer widget that moves items between an available and an assigned panel, with filtering and dataset binding, in Delphi, C++ Builder and .NET.

TsgcHTMLComponent_Transfer

Add items (or bind a dataset), let the visitor move them between the two panels with the buttons, a double-click, or the filter box, then read the HTML property.

Component class

TsgcHTMLComponent_Transfer

Renders

Bootstrap 5 dual-panel widget + scoped CSS

Languages

Delphi, C++ Builder, .NET

Add items, set a field name, render it

Call AddItem for each row (or LoadFromDataSet for a whole dataset), set FieldName so the assigned items post back as hidden inputs, then read HTML.

uses
  sgcHTML_Component_Transfer;

var
  oTransfer: TsgcHTMLComponent_Transfer;
begin
  oTransfer := TsgcHTMLComponent_Transfer.Create(nil);
  try
    oTransfer.TransferID := 'roles';
    oTransfer.FieldName := 'roles';
    oTransfer.TitleSource := 'Available roles';
    oTransfer.TitleTarget := 'Assigned roles';
    oTransfer.ShowFilter := True;
    oTransfer.Height := '260px';

    oTransfer.AddItem('admin', 'Administrator');
    oTransfer.AddItem('editor', 'Editor', True);
    oTransfer.AddItem('viewer', 'Viewer');

    WebModule.Response := oTransfer.HTML;   // dual panels + buttons + script
  finally
    oTransfer.Free;
  end;
end;

// Or bind it straight to a dataset:
oTransfer.LoadFromDataSet(qryRoles, 'RoleId', 'RoleName', 'IsAssigned');
// includes: sgcHTML_Component_Transfer.hpp

TsgcHTMLComponent_Transfer *oTransfer = new TsgcHTMLComponent_Transfer(NULL);
try
{
  oTransfer->TransferID = "roles";
  oTransfer->FieldName = "roles";
  oTransfer->TitleSource = "Available roles";
  oTransfer->TitleTarget = "Assigned roles";
  oTransfer->ShowFilter = true;
  oTransfer->Height = "260px";

  oTransfer->AddItem("admin", "Administrator", false);
  oTransfer->AddItem("editor", "Editor", true);
  oTransfer->AddItem("viewer", "Viewer", false);

  String html = oTransfer->HTML;   // dual panels + buttons + script
}
__finally
{
  delete oTransfer;
}
using esegece.sgcWebSockets;

var transfer = new TsgcHTMLComponent_Transfer();
transfer.TransferID = "roles";
transfer.FieldName = "roles";
transfer.TitleSource = "Available roles";
transfer.TitleTarget = "Assigned roles";
transfer.ShowFilter = true;
transfer.Height = "260px";

transfer.AddItem("admin", "Administrator", false);
transfer.AddItem("editor", "Editor", true);
transfer.AddItem("viewer", "Viewer", false);

string html = transfer.HTML;   // dual panels + buttons + script

Key properties & methods

The members you reach for most often.

Items

Items holds the rows, each a TsgcHTMLTransferItem with Value, Text, Assigned and Disabled.

AddItem

AddItem(aValue, aText, aAssigned) appends a row and places it in the source or target panel.

LoadFromDataSet

LoadFromDataSet(aDataSet, aValueField, aTextField, aAssignedField) clears Items and repopulates it from a TDataSet.

Panel captions

TitleSource/TitleTarget label the two panels; AddCaption/RemoveCaption/AddAllCaption/RemoveAllCaption label the four move buttons.

Filtering

ShowFilter adds a live search box to each panel; FilterPlaceholder overrides its placeholder text.

Posting back

FieldName emits one hidden input per assigned item on submit; Height caps each panel's scroll area; TransferID sets the element id.

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.

Ready to Get Started?

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