Hi everyone!

Have you ever come across a situation where you had a list of elements and you’d like to perform the same operation over all or the majority of the elements? One simple and effective way of doing this is having a checkbox that selects an element so that you can later on apply the same operation to a bunch of selected elements.

If you can access one Service Center, this pattern is used, for example, to set the security permissions for your eSpaces. It's extremely powerful and a big time saver for your users, especially in administrative tasks. The problem is that it takes a long time to implement, so normally you just go around it.

To fight this de facto behavior in my projects, I’ve developed a new widget (following the steps of the Paging widget I presented earlier this week) that performs bulk selection (select all / select none) of the rows in a Table Record. This widget also disables the action buttons associated with the list when no row is selected preventing that dumb test you had to make every single time to check if at least one row had been selected.

  • Generic Web Block (sharable across several eSpaces);
  • “check all” / “clear all” links for Table Records bulk selection;
  • Disables the action buttons if no row has been selected.
How to Use - Check the sample consumer eSpace or follow this steps:
  1. Add a reference to the BulkSelect eSpace
  2. Add the List_Select_* CSS classes to your eSpace (you may copy them from the BulkSelect eSpace)
  3. Drag the BulkSelect Web Block onto your screen
  4. Set the following webblock arguments:
    • ActionsButtons: a comma separated list of action buttons widget IDs;
    • TableRecordsId: the widget ID of the Table Records you want to bulk select.
  5. If you don’t have it already, define a structure with a single Boolean attribute (take a peek at the sample consumer eSpace to see an example);
  6. Add this Structure to the query that feeds the Table Records Widget;
  7. Add an extra leftmost column to the Table Records Widget and set it’s Width Property to something like 25 (pixels);
  8. Place a Check Box Widget inside the column you’ve just added and set the Variable Property to the Boolean attribute of the Table Records’ List Property;
  9. Build the logic for the action buttons
  10. You’re done!
NOTE: This widget assumes that you only have one checkbox column in your Table Records Widget. It will not work as expected if you have more than one.

You can find additional help regarding how to accept input data in a row of a record list widget at:
Has usual, please send me your feedback on any subject you find relevant. Many thanks to Gonçalo Gaiolas who developed the original bulk selection script.
Check out an online demo of the paging widget at: http://onlinedev.outsystems.net/bulkselect_consumer/
Hi all,

Very important thing. If you're using the BulkSelection widget you can't have other check boxes in the table records besides the one to be used for selection.

The result will be has shown in: http://onlinedev.outsystems.net/bulkselect_consumerA/ (first table record)
Hi all,

Just to let you know that this widget is now part of WidgetLibrary and StyleGuide, so you can get the latest version there. StyleGuide includes a few template pages using it

Best Regards,
Gustavo Guerra
I am looking for this functionality. The widget you have here is old and is for version 4.x .
I am using 6.x version, do you have the same widget that works on new versions?

Hi Rohit,

This widget is part of the Richwidget.

Nelson Baptista

It is not working for tablerecards with source record an advanced SQL.
The boxes are ticking correctly, but theAssociatedLinkId doesn't become clickable.

Is there something else required for advancedSQL Tablerecords?

Found it.... :D

After performing an aciton on records selected by checkboxes the checkboxes are cleared though I do it on ListDuplicate. How to preserve their state?