Skip to main content
Version: 1.28 (Current)

Datasource Inline Edit

Audience: Low-code Engineers

Skill Prerequisites: Actions, Listings

Turns rows of a Listing into editable fields, so users can change values right in the table and save them without opening a form.

Put it on a Listing button. On an item button, only that row becomes editable. On a root button, every row on the current page becomes editable. When the user clicks Save, the Listing writes the changes to its data source, then runs the On Save actions for each row and the On Complete actions once at the end.

Typical Use Cases​

  • Let users correct a value, such as a status or a quantity, without leaving the Listing
  • Edit many rows at once from a root button, then save them in one go
  • Run extra logic after each saved row, for example writing an audit record or sending a notification

Don't use it to​

Action NameDescription
Datasource Inline AddAdds a new editable row to the Listing.
Datasource EditOpens the data source's edit page for an entry.
Datasource DeleteDeletes the entry from the data source.
Datasource RefreshReloads the Listing's data.

Input Parameter Reference​

ParameterDescriptionSupports TokensDefaultRequired
On SaveActions that run after each row is saved to the data source. The row's values are available as tokens named after the columns, for example [Status]. Use these actions for extra logic only. The save itself is already done.NoemptyNo
On CompleteActions that run once, after all rows are saved. Row values aren't available here.NoemptyNo

Setting up editable columns​

Only columns with an inline edit field are editable. Set it in the Listing's field settings, under Inline Edit:

  • Field: the input type, such as Textbox, Textarea, Checkbox, Dropdown, Dropdown with Checkboxes, Datepicker, Datetimepicker, Colorpicker or Password.
  • Override Value: use it when the input's value comes from another field, for example a dropdown that stores an ID held in a different column.
  • Validation: rules checked before anything is saved.

Columns without an inline edit field stay read-only while the row is in edit mode.

How saving works​

  1. The user clicks Save. Each edited row can also be saved on its own with the row's Save button, and Cancel discards the changes.
  2. All rows are validated first. If any field fails validation, nothing is saved and the errors are shown next to the fields.
  3. For each row, the data source saves the changes, then the On Save actions run.
  4. After the last row, the On Complete actions run.
  5. The Listing leaves edit mode and reloads its data.

How the data source saves the changes depends on its type:

Data sourceWhat happens on save
Database TableBuilds an UPDATE statement from the submitted values that match table columns.
SQL Advanced Query, SQL SelectRuns the SQL Query for Updating Items set on the data source, with the row values as tokens. If it's empty, nothing is saved.
Server Request (JSON)Nothing is saved. Do the update yourself in On Save.

Considerations​

  • Final action. Actions placed after Datasource Inline Edit on the same button don't run. Put follow-up logic in On Save or On Complete.
  • Errors in On Save stop the save. If an On Save action fails, the error is shown and the remaining rows aren't saved. Rows saved before it stay saved.
  • Other results in On Save are ignored. An On Save action that ends execution, such as a message or a redirect, only stops the rest of that row's On Save actions. The next row is still processed.
  • Table view only. Inline editing works in the Listing's table view.
  • Always in edit mode. To keep the whole Listing editable without a button, use the Lock into Edit Mode setting. See Listings General Settings.

Examples​

tip

To understand how to use the below examples, please see Running Examples.

1. Edit a row and record who changed it​

Add this action to an item button. The user edits the row inline. After each row is saved, On Save writes the change to an audit table.

{
"Title": "Datasource Inline Edit",
"ActionType": "DataSource.InlineEdit",
"Description": "Edit the order inline and log the change",
"Parameters": {
"OnSave": [
{
"Title": "Run SQL Query",
"ActionType": "RunSql",
"Parameters": {
"SqlQuery": "INSERT INTO OrderAudit (OrderId, Status, ChangedBy, ChangedOn) VALUES (@OrderId, @Status, @UserId, GETDATE())",
"BindTokens": [
{ "name": "OrderId", "value": "[OrderId]" },
{ "name": "Status", "value": "[Status]" },
{ "name": "UserId", "value": "[User:UserId]" }
]
}
}
],
"OnComplete": []
}
}

2. Edit the whole page and recalculate totals once​

Add this action to a root button. Every row on the page becomes editable. After all rows are saved, On Complete runs a stored procedure once, instead of once per row.

{
"Title": "Datasource Inline Edit",
"ActionType": "DataSource.InlineEdit",
"Description": "Bulk edit the current page",
"Parameters": {
"OnSave": [],
"OnComplete": [
{
"Title": "Run SQL Query",
"ActionType": "RunSql",
"Parameters": {
"SqlQuery": "EXEC dbo.RecalculateOrderTotals"
}
}
]
}
}

Revised 09/26/2026