Transfer 组件 — sgcHTML | eSeGeCe

Transfer

TsgcHTMLComponent_Transfer — 渲染一个双列表框传送控件,在可用面板和已分配面板之间移动项目,支持筛选和数据集绑定,适用于 Delphi、C++ Builder 和 .NET。

TsgcHTMLComponent_Transfer

添加项目(或绑定数据集),让访问者通过按钮、双击或筛选框在两个面板之间移动它们,然后读取 HTML 属性。

组件类

TsgcHTMLComponent_Transfer

渲染为

Bootstrap 5 双面板控件 + 作用域 CSS

语言

Delphi, C++ Builder, .NET

添加项目、设置字段名称、渲染它

为每一行调用 AddItem(或使用 LoadFromDataSet 绑定整个数据集),设置 FieldName 使已分配项目以隐藏输入形式回传,然后读取 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

关键属性与方法

您最常使用的成员。

项目

Items 保存这些行,每一行都是一个 TsgcHTMLTransferItem,具有 ValueTextAssignedDisabled

添加项目

AddItem(aValue, aText, aAssigned) 追加一行,并将其放入源面板或目标面板。

数据集绑定

LoadFromDataSet(aDataSet, aValueField, aTextField, aAssignedField) 清空 Items 并从 TDataSet 重新填充。

面板标题

TitleSource/TitleTarget 标注两个面板;AddCaption/RemoveCaption/AddAllCaption/RemoveAllCaption 标注四个移动按钮。

筛选

ShowFilter 为每个面板添加一个实时搜索框;FilterPlaceholder 覆盖其占位符文本。

表单回传

FieldName 在提交时为每个已分配项目生成一个隐藏输入;Height 限制每个面板的滚动区域;TransferID 设置元素 id。

继续探索

在线帮助此组件的完整 API 参考和使用指南。
所有 sgcHTML 组件浏览 80 多个组件的完整功能矩阵。
下载免费试用版30 天试用版附带 60.HTML 演示项目。
价格Single、Team 和 Site 授权,均含完整源代码。

准备好开始了吗?

下载免费试用版,开始在 Delphi、C++ Builder 和 .NET 中构建 Web 界面。