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.
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.