Edit List Data
This page shows you how to edit items on the List widget. You will learn how to edit, delete, and duplicate a List item using action buttons within the widget.
Prerequisites
- A List widget connected to a query that holds the data you want to edit and update.
Edit list item
To edit a List item using an icon, follow these steps:
-
Drop an Icon button to the List widget and select edit in Icon from the property pane.
-
Drop a Modal widget on to the canvas and add the required widgets to display specific details from the List item. Rename the buttons on the Modal to
Reset
andUpdate
. -
Add a new query to update the List data.
Example:
UPDATE product
SET name = {{inp_addProductTitle.text}},
description = {{inp_addProductDescription.text}},
type = 'OTHER',
image = {{inp_addImgUrl.text}}
WHERE id = {{utils.activeEditProduct ? utils.activeEditProduct.id : ''}}; -
Create a JS Object to run the update query, close the Modal, and fetch the updated data from the datasource.
Example:
updateProduct: async () => {
await updateProduct.run();
closeModal('mdl_manageProduct');
showAlert('Product Updated', 'success');
getProducts.run();
} -
Add Execute a JS function action to the onClick event of the
Update
button on the modal. -
Add a Show modal action to the onClick event of the Icon. Select the Modal created in Step 2.
Delete list item
To delete a list item using an icon, follow these steps:
-
Drop an Icon button to the List widget and select trash in Icon from the property pane.
-
Drop a Modal widget on to the canvas and design it to show a confirmation message with
Close
andDelete
buttons. -
Add a Show modal action to the onClick event of the Icon.
-
Add a query to delete the list item based on the triggeredItem property.
Example:
DELETE FROM product
WHERE id = {{lst_products.triggeredItem.id}}; -
Add Execute query action to the onClick event of the
Delete
button to run delete query.
Edit list item inline
To implement inline editing of list items using a Select widget, follow these steps:
-
Drop a Select widget to the List widget. Bind data to the widget to populate values from a specific column.
-
Create a new query to update the column value for the triggered row.
Example:
UPDATE public."product"
SET state = '{{lst_products.triggeredItem.sel_state.selectedOptionValue}}'
-- Specify a valid condition here. Removing the condition may update every row in the table!
WHERE id = {{lst_products.triggeredItem.id}}; -
Add an action to the onOptionChange event of the Select widget to run the update query.
-
Set the On success callback to execute the fetch query for the List widget to reflect the changes.