Logo Practice with Ankit | Form and DB Operations

Client Survey

Id Name (Link) Surname Gender Mobile Age Last Updated On
Showing 0 of 0 records
Page 1
Requirement: Form and DB Operation 9 - Bulk Permanent Delete & Global Selection

This exercise upgrades the list view to support cross-page selection and bulk permanent deletion, simulating a professional administrative interface for managing records.

NOTE: The global selection and multi-page logic are implemented, but the Bulk Delete button is configured for **Permanent Delete** (Hard Delete), which was the final state before the last feature request (which is not implemented here).

List Setup & Pagination:

  • The list is paginated (5 records per page) and sorted by Name (Ascending).
  • The default data set is large enough to span at least two pages.
  • A checkbox column is added to the table with a Select All header checkbox.

Global Selection & State Management:

  1. Global Selection: When the Select All checkbox is checked, it must select all records in the currently filtered set, regardless of which page they reside on.
  2. Cross-Page Persistence: Navigating between pages must maintain the selection state of previously selected records.
  3. Dynamic Select All: The Select All header checkbox must dynamically check/uncheck based on whether all records in the current filtered set are selected. Unselecting any record on any page should uncheck the master selector.
  4. Delete Button Count: The Delete Selected button must accurately display the total number of records selected globally (across all pages).

Bulk Delete Functionality:

  1. A Delete Selected button is placed near the search bar.
  2. The button executes a Permanent Delete (Hard Delete) operation, removing all records whose IDs are in the global selection set.

Hint (OutSystems): The solution uses a JavaScript Set to maintain the selected identifiers (IDs) independently of the screen's pagination or filtering actions.

Ankit G Avatar
About the Author: Ankit Gangrade

Ankit Gangrade is a passionate Low-Code Architect, Developer, & Educator dedicated to helping students and professionals build modern applications faster using OutSystems and Cloud-Native technologies. His goal is to bridge the gap between traditional coding and modern low-code platforms — empowering the next generation of developers to build smart, scalable, and cloud-ready apps.