per_page sets the size; per_page_options offers a choice of sizes.
A column
Sortable, visible, read-only.
sortable: false, invisible: true, editable: true.
A cell with editable: true
The form field’s control, saved on change through the form’s rules, persister and listeners; a refused value shows its message under the control. With scripting off, a Save button. The column’s field must be on the resource’s form.
None.
Export
Off.
exportable: true.
Deleting rows
Off.
deletable: true; it asks before it deletes.
Rows in an order of their own
Off.
reorder: true keeps the order in sort_order; reorder: { column: position } names the column. An integer column, not null, default 0. The list opens in that order with a grip to drag and Move up / Move down on every row; a sorted, searched or filtered view shows neither. A has-many section’s list takes the same key.
Rows as a tree
Off.
tree: true reads the parent from parent_id; tree: { parent_key: folder_id, source: acme.folders } names the column and a picker source. The list opens on the rows with no parent; a row with children expands in place, or opens them as a page with scripting off. With a source, every row offers “Move to”, which picks the new parent from it or leaves it empty for the top level, and a record never moves under itself. With reorder too, a move stays among one parent’s children.
A row
Opens its record on a click or Enter, when the list has a form. A modified or middle click opens a new tab.
row_click: none.
Row boxes
Shift and a click ticks or clears the range from the last box clicked.
None.
Returning to a list
The sort, search and filters used last come back, for the session. Clearing them forgets them.
remember: false.
A stored code in a column
Shown as stored.
labels: [{ value, label }] shows a label for each value.