DataPanelLeaf
DataPanelLeaf (TKXDataPanelLeafController) is the abstract base class for controllers that display record data linked to a ViewTable (see DataView). You never use this class directly — you use one of its concrete subclasses instead.
Class hierarchy
Panel (TKXPanelControllerBase)
└── DataPanelLeaf (TKXDataPanelLeafController)
├── GridPanel
├── ChartPanel
├── GroupingList
└── TemplateDataPanelAs a Panel, DataPanelLeaf inherits all common panel properties (Title, IsModal, Maximized, AllowClose, Width, Height, Collapsible, etc.).
Inherited controllers
| Controller | Description |
|---|---|
| GridPanel | Tabular data grid with sorting, column layouts, row colors |
| ChartPanel | Chart.js charts (bar, line, pie, doughnut) |
| GroupingList | Grid with collapsible group headers |
| TemplateDataPanel | Custom HTML templates for read-only display |
Common features
All DataPanelLeaf controllers share these capabilities:
ToolViews
Custom action buttons on the controller's toolbar. Each ToolView launches a Tool controller:
ToolViews:
ExportCSV:
DisplayLabel: Export to CSV
ImageName: download
Controller: ExportCSVTool
RequireSelection: FalseRequireSelection controls whether the button requires a selected row (True) or is always enabled (False).
Standard actions
Data panels support standard CRUD operations through the MainTable/Controller node:
| Property | Type | Default | Description |
|---|---|---|---|
PreventAdding | Boolean | False | Hide the Add button |
PreventEditing | Boolean | False | Hide the Edit button |
PreventDeleting | Boolean | False | Hide the Delete button |
PreventRefreshing | Boolean | False | Hide the Refresh button |
AllowViewing | Boolean | False | Show the View (read-only) button |
AllowDuplicating | Boolean | False | Show the Duplicate button |
IsMultiSelect | Boolean | False | Allow selecting multiple records |
PagingTools | Boolean | False | Enable server-side pagination |
The toolbar buttons appear in this order: Add, Duplicate, Edit, Delete, View, Refresh, then any custom ToolViews.
SortFieldNames
Defines the initial sort order for the data panel:
MainTable:
Model: ACTIVITY
Controller:
SortFieldNames: ACTIVITY_DATEMultiple fields can be specified separated by spaces (e.g. SortFieldNames: LAST_NAME FIRST_NAME).
DefaultFilter
A SQL WHERE clause applied automatically to restrict displayed records. Supports macros:
MainTable:
Model: MY_MODEL
DefaultFilter: STATUS = 'ACTIVE'