The user sees a paginated table of items. For each item/row there is a checkbox to the left that lets the user select that row.

Below the table a button: "Compare selected".

The user can select several (more than two) rows and click "Compare selected" to go to another page that compares the selected rows.

What is the best way to handle that the user wants to compare a row on page one and page three? How do I indicate that the row that was selected on page one is still selected when the user displays a different page?

  • I know this is not an answer, but have you considered infinite scrolling? In the case it is suitable for your usage (which is not sure), it could maybe solve some of the issues you're pointing out.
    – xBill
    Apr 10, 2014 at 8:14

3 Answers 3


I would repeat the selected items with their checked box on the top of the table when the user navigates to another page.

This has the benefit of keeping them visible and allow the user to uncheck one of them any time.

The drawback is when the user wants to select a lot of items, there isn't much more room for the paginated items. How to handle this depends on the available space.

Another solution is to keep a reduced representation of the selected items, like only its name and a "x" icon to cancel each of them. This takes less space but is less readable if you don't have a title that clearly identifies the item.

  • 1
    In most cases it's not a very good idea to allow the user to compare a lot of items, is it? I think that it would be reasonable to allow the user to compare a limited amount of items.
    – xBill
    Apr 10, 2014 at 8:10
  • I don't know your use case, but you wrote "more than two" so I guessed. I agree that comparing too much items isn't usable. I usually see it limited to 3, I wouldn't allow much more than that.
    – Mart
    Apr 10, 2014 at 9:44
  • Even if the number of items is limited to two, the problem is still the same: How to handle comparing items from (say) page 1 and 3.
    – codeape
    Apr 10, 2014 at 10:25
  • I think my first suggestion is appropriate then. You can even move the checked item to top as soon as they are selected, to show the user this special area.
    – Mart
    Apr 10, 2014 at 10:59

What about displaying the next page of results below the first page? Show the first 10 results, then have a "show next 10" button at the bottom. It loads the next "page" of results below the existing set.

The context remains the same so you can maintain the selected rows.

I've never seen this pattern before but I can imagine it working well.


Here's my current solution:

  • I chose to use pushpin icons instead of checkboxes.
  • I use @Mart's suggestion to repeat the selected items at the top.
  • I also like the suggestion to move the selected items to the top right away, but have not implemented this.
  • The buttons with selection actions are visible only when at least one item is selected.
  • I have set the page size to five just for the screenshots, page size is twenty in the real app.


a) Table with nothing selected:

Nothing selected

b) Selected couple of items on page one. Note that I also have a another view of selected items. The user can change the order that items appear in the comparison by rearranging the labels using drag/drop.

Two items on page one selected

c) Moved to page three and selected an item

Page three with another item selected

  • I've flagged this as 'not an answer'. You should include this as an edit to your question.
    – elemjay19
    Apr 10, 2014 at 20:40
  • 1
    @norabora - That is not true. Questions and Answers are separate for a reason. Answers should be left as answers, even it's to your own question. Apr 10, 2014 at 21:21
  • @CodeMaverick I guess it wasn't completely clear to me that it was an answer. I thought he was just providing more information.
    – elemjay19
    Apr 10, 2014 at 21:33
  • It is more "here's how I implemented the suggestions from the answers" than information about the original question.
    – codeape
    Apr 17, 2014 at 17:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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