Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

Suppose I have a list of 100+ pieces of data that I'm displaying in a table that's paginating 40 elements per page.

Each row has 'select' checkbox that enables the user to select/unselect an individual item. On top of the list, there's also a 'select/unselect all' checkbox. For the moment, I have the functionality designed so that when the user clicks that checkbox, the action of toggling the selection is performed only on the elements currently displayed in the page. What are the best practices on 'select all'?

Should the action operate on:

a) only the visible elements being paginated, or

b) the entire list?

share|improve this question

4 Answers 4

up vote 6 down vote accepted

Gmail does something that works pretty well, and has been around for a while.

Firstly, when you search for a particular string (in this case 'ebay' which gave me loads of results to work with) and then choose to select everything on the page (from the checkbox in the top-left) then it produces a message saying:

All 20 conversations on this page are selected. 'Select all conversations that match this search'

In the top-right is a '1-20 of many' text, but when there are a more reasonable number (say, 100 overall) then it'll tell you the actual number, and not just 'many'.

enter image description here

Then, if you choose that 'select all' message it updates your selection to show:

All conversations in this search are selected. Clear selection.

enter image description here

So give the user the ability to select only the ones on screen and also show how many extra ones are available. Give the user the ability to then toggle between the presently viewing list and the complete list before they decide they want to confirm the action.

share|improve this answer

I would stick with how you have it now. You don't want "select all" to allow users to perform an action on items not currently viewable. There are all kinds of unexpected outcomes that can result of that.

share|improve this answer

for tabular data you can also provide an arrow with the check box, where you can provide options to select visible items, all items and deselect items. default action should be select page.

enter image description here

share|improve this answer

Pagination is flawed when it comes to interaction

Pagination is great in reducing visual load, but involves many functionality issues if records are to be interacted with.

Expected behaviour

You shouldn't select records that the user doesn't see. Doing so is an open door to malfunction (and sometimes data loss).

Use non ambiguous terms

select all is not a good name for the button you are proposing. Something along the lines of select page is much better if only records from the page are selected. You can obviously offer both buttons.

The phpMyAdmin solution

If you have been using phpMyAdmin in development phases of project, this issue pops many times - there are more than 30 records in a table, but only 30 are in the current view. Yet there is a user need to select all records in order to delete or modify them. The way this is achieved within phpMyAdmin is that the user has control over the amount of records per page. So you simply set it to the amount of records, select all, and do what you want.

The Developer's View

If you are designing a web app, you should really consult with your development team to see whether a feature such as select all records is even possible to implement. In most cases, the pagination is done remotely, with only page records being loaded. So programmers may have extreme difficulties implementing a select all feature.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.