TreeGrid 컴포넌트 — sgcHTML | eSeGeCe

TreeGrid

TsgcHTMLComponent_TreeGrid — Delphi, C++ Builder 및 .NET에서 Id / ParentId 쌍으로 구성된 접고 펼칠 수 있는 계층적 행을 가진 Bootstrap 테이블을 렌더링합니다.

TsgcHTMLComponent_TreeGrid

열을 정의하고, 노드를 추가한(또는 Id / ParentId로 자기 참조 데이터셋을 바인딩한) 다음, HTML 속성을 읽습니다.

컴포넌트 클래스

TsgcHTMLComponent_TreeGrid

렌더링

Bootstrap 5 테이블 + 범위 지정 CSS + 토글 스크립트

패밀리

데이터 및 표

언어

Delphi, C++ Builder, .NET

열을 추가하고, 노드를 추가하고, 렌더링하기

표시할 필드마다 TsgcHTMLTreeGridColumn을 추가하고, AddNode로 행을 추가한 다음, HTML을 읽습니다. 각 노드의 Id / ParentId가 계층 구조를 만듭니다.

uses
  sgcHTML_Component_TreeGrid;

var
  oTreeGrid: TsgcHTMLComponent_TreeGrid;
  oColumn: TsgcHTMLTreeGridColumn;
begin
  oTreeGrid := TsgcHTMLComponent_TreeGrid.Create(nil);
  try
    oTreeGrid.TreeGridID := 'orgchart';
    oTreeGrid.Sortable := True;

    oColumn := oTreeGrid.Columns.Add;
    oColumn.Caption := 'Department';
    oColumn.FieldName := 'Name';

    oColumn := oTreeGrid.Columns.Add;
    oColumn.Caption := 'Headcount';
    oColumn.FieldName := 'Headcount';
    oColumn.Align := tgaRight;

    oTreeGrid.AddNode('eng', '', ['Engineering', '42']);
    oTreeGrid.AddNode('eng-be', 'eng', ['Backend', '18']);
    oTreeGrid.AddNode('eng-fe', 'eng', ['Frontend', '15']);

    WebModule.Response := oTreeGrid.HTML;   // hierarchical table + scoped CSS + toggle script
  finally
    oTreeGrid.Free;
  end;
end;

// Or bind it straight to a self-referencing dataset (Id / ParentId columns):
oTreeGrid.LoadFromDataSet(qryDepartments, 'Id', 'ParentId');
// includes: sgcHTML_Component_TreeGrid.hpp

TsgcHTMLComponent_TreeGrid *oTreeGrid = new TsgcHTMLComponent_TreeGrid(NULL);
try
{
  oTreeGrid->TreeGridID = "orgchart";
  oTreeGrid->Sortable = true;

  TsgcHTMLTreeGridColumn *oColumn = oTreeGrid->Columns->Add();
  oColumn->Caption = "Department";
  oColumn->FieldName = "Name";

  oColumn = oTreeGrid->Columns->Add();
  oColumn->Caption = "Headcount";
  oColumn->FieldName = "Headcount";
  oColumn->Align = tgaRight;

  oTreeGrid->AddNode("eng", "", OPENARRAY(UnicodeString, ("Engineering", "42")));
  oTreeGrid->AddNode("eng-be", "eng", OPENARRAY(UnicodeString, ("Backend", "18")));

  String html = oTreeGrid->HTML;   // hierarchical table + scoped CSS + toggle script
}
__finally
{
  delete oTreeGrid;
}
using esegece.sgcWebSockets;

var treeGrid = new TsgcHTMLComponent_TreeGrid();
treeGrid.TreeGridID = "orgchart";
treeGrid.Sortable = true;

var column = treeGrid.Columns.Add();
column.Caption = "Department";
column.FieldName = "Name";

column = treeGrid.Columns.Add();
column.Caption = "Headcount";
column.FieldName = "Headcount";
column.Align = TsgcHTMLTreeGridAlign.tgaRight;

treeGrid.AddNode("eng", "", new[] { "Engineering", "42" });
treeGrid.AddNode("eng-be", "eng", new[] { "Backend", "18" });

string html = treeGrid.HTML;   // hierarchical table + scoped CSS + toggle script

주요 속성 및 메서드

가장 자주 사용하게 되는 멤버.

Columns는 표시되는 필드를 담으며, 각 필드는 Caption, FieldName, Width, 열거형 AlignVisible을 갖습니다.

행 추가

AddNode(aId, aParentId, aValues)는 행을 추가합니다. Id / ParentId가 계층 구조를 정의하며, aValues는 열마다 하나의 문자열을 담습니다.

데이터셋 바인딩

LoadFromDataSet(aDataSet, aIdField, aParentIdField)는 자기 참조 레코드셋을 트리로 변환하며, Columns가 비어 있으면 나머지 필드마다 열을 자동으로 생성합니다.

펼치기 / 접기

ExpandedByDefault, 각 노드 고유의 Expanded, IndentPixels, ExpandedIconCollapsedIcon이 클라이언트 측 접기/펼치기 토글을 제어합니다.

정렬

SortableSortColumn은 선택한 열을 기준으로 각 부모 아래의 형제 행을 로케일에 관계없이 정렬합니다.

테이블 스타일

Striped, Bordered, HoverShowRowLines가 Bootstrap 테이블 스타일을 지정합니다. HTML은 테이블과 토글 스크립트를 반환합니다.

계속 살펴보기

온라인 도움말이 찱포넌트의 전체 API 참조 및 사용 가이드입니다.
모든 sgcHTML 컴포넌트80개 이상의 컴포넌트 전체 기능 매트릭스를 둘러보십시오.
무료 체험판 다운로드30일 체험판에는 60.HTML 데모 프로젝트가 포함됩니다.
가격전체 소스 코드가 포함된 Single, Team 및 Site 라이선스.

시작할 준비가 되셨습니까?

무료 체험판을 다운로드하고 Delphi, C++ Builder 및 .NET에서 웹 UI를 구축하기 시작하십시오.