Professional & Enterprise

Manage child records inline — no second form, no leaving the page.

A Repeating Section shows related child-list items as an editable table right inside the parent form. Users add, edit, and delete rows in place — perfect for line items, sub-tasks, contacts, or any one-to-many data.

Key capabilities

  • Inline add / edit / delete — controlled by the operations you allow.
  • Rich inline editing for single-line & multiline text, date/time, choice, yes/no, number, currency, people picker, lookup (single & multi-value), and managed metadata.
  • Any list, anywhere — the child list can live in any site collection in your tenant.
  • Constraints — set minimum and maximum row counts.
  • Calculated columns — display-only columns computed live per row with the formula engine (e.g. [Quantity] * [UnitPrice]), never written back to the list.
  • Lookup-derived fields — a single-select lookup column (e.g. Product) can surface extra fields from the selected item (e.g. its Unit price) as auto-populated, read-only columns — usable directly in calculated columns like [Quantity] * [UnitPrice], and updating live as the lookup changes.
  • Totals row — Count / Sum / Average / Min / Max in a footer, live across all rows — order totals with no code.
  • Auto-updating column titles — default to the live SharePoint field name and support [[variable:…]] tokens for multi-language.
  • Configurable columns, custom heading, and empty-state message (multi-language ready).
  • Custom JS callback — react to row changes in code for advanced roll-ups.
  1. Point it at the child list, then describe the columns

    Name the site and the child list, then say which column links a row back to its parent. Lookup columns work, but so does a plain text column — and DFFS will hand you a _DFFSID value to put in it, which sidesteps SharePoint’s lookup restrictions entirely when the two lists live apart. (How to add the _DFFSID column →)

    Each column then gets its own row in the configuration: the display title, a width, whether it can be edited, whether it is required, an optional prefix and suffix, and whether it contributes to a totals row. Rows can also be pulled through a lookup — here SKU and Unit price come from the selected Product, so choosing a product fills them in and keeps them read-only.

    The Repeating section configuration panel: a Web URL and Target list set to LineItems, a parent link field, and a Columns table listing Product, SKU and Unit price derived from Product, Quantity, and a calculated Line total — each with display title, width, edit and required checkboxes, prefix, suffix and a total dropdown. Below are Allow add, edit and delete row checkboxes, minimum and maximum row counts, and an empty-state label.
  2. Columns that compute themselves, per row

    A calculated column runs a formula against the other columns in its own row, referenced by internal name. It is worked out live in the browser and never written back to the list, so it costs nothing to add and cannot drift out of step with the data behind it.

    The editor lists the columns available to the formula, and it warns about the one trap worth knowing: a currency symbol belongs in the prefix, not inside CONCATENATE. Concatenating turns the result into text, and a text column can no longer be summed or averaged in the totals row.

    The Edit calculated column dialog: a Formula box multiplying Quantity by a unit price pulled from the product lookup, a list of the columns available to the formula, and a highlighted note advising that prefix and suffix are cosmetic and should be used instead of CONCATENATE, which turns the result into text and breaks Sum, Average, Min and Max on that column.
  3. Empty, then filled — without ever leaving the form

    Before anything is added, the section shows the headings and whatever empty-state message you wrote, plus a single Add row button. Rows are then added and edited in place: pick the product from a dropdown and its SKU and unit price arrive on their own, type a quantity and the line total follows. Each row keeps its own edit and delete controls. No second form, no dialog, no page change — and nothing is written to the child list until the parent form is saved.

    The footer is the totals row from step one doing its job: Sum on the line-total column, with the $ prefix applied after the arithmetic rather than inside it. It recalculates as rows are added, edited and removed — no rule, no code.

    The Items tab of a form showing an empty repeating section: column headings for Product, SKU, Unit price, Quantity and Line total, the message "No items have been added yet", and an Add row button. The same section holding two committed rows — a monitor and a label printer — each showing its SKU and unit price pulled from the product, a quantity, and a line total of $ 389 and $ 219, with edit and delete icons per row. A footer row totals them at $ 608, above an Add row button.

Worked example

On an Orders form, add a Repeating Section bound to OrderLines showing Title, Quantity, Unit price, and Amount. Switch on a Sum totals row on Amount and the order total appears live in the table footer — no code. To surface that total in a parent field too, add a read-only OrderTotal field and the short callback below. Tip: make Unit price a lookup-derived column from a Product lookup so it auto-fills from the selected product.

window.dffs_repeatingSection_loaded_callback = function (id, items) {
  var total = items.reduce(function (sum, row) { return sum + (row.Amount || 0); }, 0);
  dffs_setFieldValue("OrderTotal", total);
};

Full Repeating Sections documentation →

Handle child data inline — free for 30 days.

Full functionality, no credit card.