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
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.
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.
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.
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.
class function BuildPager(const AViewName: string;Builds the pager (page buttons / record range) for the given totals.
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.
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.
