I have a data-table with the following features:
- Filtering (client-side)
- Column sorting (client-side)
- Pagination (client-side)
- Configurable number of rows per page.
- Multi-row selection for bulk operations
- A bulk operation toolbar, e.g. bulk delete
You can imagine something like this:
...with a bulk operation toolbar at the top.
Should row selections be maintained across pages?
If user selects a row X on page 1, navigates to page 2, then navigates back to 1 should row X still be selected?
Should row selections be maintained after changing the number of rows per page?
Initially there are 25 rows per page, user selects row X, user changes number of rows per page to 10, should row X still be selected, even if it no longer fits on the page?
Should row selections be maintained after a column sort?
Again the selected row might be on a different page now.
Should row selections be maintained after changing the filter?
User filters for a keyword, selects row X, user removes the filter, all rows are now included, is row X still selected?
Should bulk actions be allowed if the only selected row is on a page that is not active?
User selects row X on page 1, goes to page 2. Should user be able to delete row X even though it is no longer shown?