Dynamic Matrix Question Schema Properties
A matrix table where respondents can dynamically add and remove rows.
Element type: matrixdynamic
Key properties: 26
Generation Hints
Section titled “Generation Hints”- Aliases: dynamic table, repeatable rows, editable grid.
- Use when: respondents add rows to a structured table.
- Recommended properties:
type,name,title,columns,rowCount,minRowCount,maxRowCount.
{ "type": "matrixdynamic", "name": "items", "title": "Line items", "columns": [{ "name": "description", "cellType": "text" }, { "name": "amount", "cellType": "text", "inputType": "number" }] }Key Properties
Section titled “Key Properties”columns
Section titled “columns”- Type:
matrixdropdowncolumns - Default:
—
An array of matrix columns.
cellType
Section titled “cellType”- Type:
string - Default:
"dropdown" - Allowed values:
dropdown,checkbox,radiogroup,tagbox,text,comment,boolean,expression,rating,slider
Specifies the type of matrix cells. You can override this property for individual columns.
choices
Section titled “choices”- Type:
itemvalue[] - Default:
[]
Gets or sets choice items for Dropdown, Checkbox, and Radiogroup matrix cells. You can override this property for individual columns.
rowCount
Section titled “rowCount”- Type:
number - Default:
2
The number of rows in the matrix.
minRowCount
Section titled “minRowCount”- Type:
number - Default:
0
A minimum number of rows in the matrix. Users cannot delete rows if rowCount equals minRowCount.
maxRowCount
Section titled “maxRowCount”- Type:
number - Default:
1000
A maximum number of rows in the matrix. Users cannot add new rows if rowCount equals maxRowCount.
allowAddRows
Section titled “allowAddRows”- Type:
boolean - Default:
true
Specifies whether users are allowed to add new rows.
allowRemoveRows
Section titled “allowRemoveRows”- Type:
boolean - Default:
true
Specifies whether users are allowed to delete rows.
allowRowReorder
Section titled “allowRowReorder”- Type:
switch - Default:
—
Specifies whether users can drag and drop matrix rows to reorder them. Applies only if transposeData is false.
addRowText
Section titled “addRowText”- Type:
string - Default:
— - Localizable: Yes
A caption for the Add Row button.
removeRowText
Section titled “removeRowText”- Type:
string - Default:
— - Localizable: Yes
Use this property to change the default value of remove row button text.
addRowButtonLocation
Section titled “addRowButtonLocation”- Type:
string - Default:
"default" - Allowed values:
default,top,bottom,topBottom
Specifies the location of the Add Row button.
confirmDelete
Section titled “confirmDelete”- Type:
boolean - Default:
—
Specifies whether to display a confirmation dialog when a respondent wants to delete a row.
confirmDeleteText
Section titled “confirmDeleteText”- Type:
string - Default:
— - Localizable: Yes
A message displayed in a confirmation dialog that appears when a respondent wants to delete a row.
copyDefaultValueFromLastEntry
Section titled “copyDefaultValueFromLastEntry”- Type:
boolean - Default:
—
Specifies whether default values for a new row/column should be copied from the last row/column.
defaultRowValue
Section titled “defaultRowValue”- Type:
rowvalue - Default:
—
If it is not empty, then this value is set to every new row, including rows created initially, unless the defaultValue is not empty
keyName
Section titled “keyName”- Type:
string - Default:
—
Specifies a key column. Set this property to a column name, and the question will display keyDuplicationError if a user tries to enter a duplicate value in this column.
keyDuplicationError
Section titled “keyDuplicationError”- Type:
string - Default:
— - Localizable: Yes
An error message displayed when users enter a duplicate value into a column that accepts only unique values (isUnique is set to true or keyName is specified).
noRowsText
Section titled “noRowsText”- Type:
text - Default:
— - Localizable: Yes
A message displayed when the matrix does not contain any rows. Applies only if hideColumnsIfEmpty is enabled.
hideColumnsIfEmpty
Section titled “hideColumnsIfEmpty”- Type:
boolean - Default:
—
Specifies whether to hide columns when the matrix does not contain any rows. If you enable this property, the matrix displays the noRowsText message and the Add Row button.
rowsVisibleIf
Section titled “rowsVisibleIf”- Type:
condition - Default:
—
A Boolean expression that is evaluated against each matrix row. If the expression evaluates to false, the row becomes hidden.
showHeader
Section titled “showHeader”- Type:
boolean - Default:
true
Specifies whether to display the table header that contains column captions.
detailPanelMode
Section titled “detailPanelMode”- Type:
string - Default:
"none" - Allowed values:
none,underRow,underRowSingle
Specifies the location of detail sections.
detailPanelShowOnAdding
Section titled “detailPanelShowOnAdding”- Type:
boolean - Default:
—
Specifies whether to expand the detail section immediately when a respondent adds a new row.
transposeData
Section titled “transposeData”- Type:
boolean - Default:
—
Specifies whether to display columns as rows and rows as columns.
verticalAlign
Section titled “verticalAlign”- Type:
string - Default:
"middle" - Allowed values:
top,middle
Aligns matrix cell content in the vertical direction.
Shared Properties
Section titled “Shared Properties”This page lists only properties that are specific to this element type or especially important for generation.
- Use Shared Question Properties for common fields such as
name,title,description,isRequired,requiredIf,visibleIf,enableIf,readOnly,defaultValue,validators,width, and layout options. - Use Matrix Row and Matrix Column for
rowsandcolumnsobject shapes.