Skip to content

Kitto.Html.List

KittoX List controller — renders a data grid with server-side pagination, column sorting, and FreeSearch filtering using HTMX. Replaces TKExtGridPanel from Kitto.Ext.GridPanel.

TKXListPanelController class

pascal
property Filters: TKFilterPanelConfig read GetFilters;

RTTI carrier of the Filters sub-node (the filter panel shown above the grid). The getter returns nil: the sub-tree is described by TKFilterPanelConfig, which is what the validator and designer read.

pascal
property Edit: string read GetEdit;

RTTI carrier for the Edit toolbar-action options node (e.g. Controller/Edit/Tooltip). The getter is unused; the node carries a small block of per-action overrides read directly at render time.

pascal
class function BuildDataRows(AStore: TKViewTableStore;

Builds the grid data rows (<tr>…) for the given store/layout — the tbody content swapped by HTMX on filter/sort/paging.

pascal
class function BuildColumnHeaders(AViewTable: TKViewTable;

Builds the grid column headers (with sort links reflecting the current sort/dir). AHiddenFieldName, when given, names a field that must not get a column: a grouped grid uses it to leave out the field it groups by, whose value is already in every group header.

pascal
class function BuildPager(const AViewName: string;

Builds the pager (page buttons / record range) for the given totals.

pascal
class function BuildHiddenState(const AViewName: string;

Builds the hidden state <div> carrying sort/dir/limit (and master key) so it survives HTMX search/paging via hx-include.

pascal
class function GetLookupContextFilter: string;

In lookup mode (mode=lookup with cv/cf query/state fields), returns the expanded LookupFilter of the calling reference field, so a dedicated IsLookup grid honors the same restriction the inline data-options combo would apply (e.g. {MasterRecord.PaganteId}). {MasterRecord.*}/{Field} macros are resolved against the calling form's session record. Returns '' when not in lookup mode or the calling field has no LookupFilter.

Released under Apache License, Version 2.0.