Skip to main content
CYPEX Documentation
Support
v2.0.0 Latest stable release View changelog ->
Various Referencegenerated

Sub Form

Edit related records in a nested form

Technical id
default_sub_form

A section of a parent form that edits a nested part of the same record, such as a JSON column or a related row, using its own child inputs.

When to use

  • Editing a nested object inside one record, where the inputs should read and write below a shared field path rather than at the top level.

What you need

Binds to a field path on a parent Form. The inputs placed inside it address paths relative to that field, so they do not each need the full path.

Examples

  • An address block stored as a JSON column on the main record.

Avoid

  • Reaching for it to edit a list of related records — that is a Subform Table.
  • Placing it outside a Form; it has nothing to bind to on its own.

Use instead

  • Subform table — Use instead when the nested data is a list of rows rather than a single nested object.

Editor properties

Configure these in the Application Designer property panel. Group headings mirror the editor where possible. Data Source is where the element gets its rows or field binding (a view/query, a connector operation, or a parent form field). References appear only for view-backed sources and map foreign-key ID columns to readable labels from another view.

Data SourcerequiredSettings group
Where this element loads its data (view, query, connector, or element).
Default: none

Inside dataSource: (dataSource)

Element IDrequiredNumber or Text
Another element on the page whose data backs this field.
Default: none
Field PathrequiredList of Text or Number
Path into the source element’s data (property segments).
Default: none

Sizing

  • No size of its own: dropped at the platform default of 1 × 1 grid cells and resized on the page.

Child slots

This container accepts nested elements in these slots:

slotaccepts
contentany element

Nesting overview

graph TD
  root["default_sub_form"]
  root --> content["content slot"]

Where you can place it

Drag this element into one of these containers:

Placement notes

  • Form — Always lives inside a Form, which owns the record being edited and the save action.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
  "config": {
    "dataSource": {
      "elementId": "myElement",
      "fieldPath": [
        "fieldPath"
      ]
    }
  },
  "children": {
    "content": [
      {
        "type": "default_text_input",
        "config": {
          "label": "Example field"
        }
      }
    ]
  }
}