views:

167

answers:

3

Where you have a databound list of items and for each item you may want to provide users the ability to (for example):

  • Delete
  • Download
  • View Detail
  • or 'mark' in some way

You have a few options:

  • Provide buttons or links within the row itself to complete the operation on the row item
  • Provide a checkbox select within the row and then a means of performing an operation of a group of selected items
  • A combination of the above (some operations - 'View Detail' for example - don't work in a grouped selection method)

What do people think is the most usable approach to providing this kind of interaction?

Links to examples of 'usable' lists would be good.

+1  A: 

My opinion : It depends on the data displayed in this table.

If I really need to execute one operation on several elements, for example to delete 10 elements, I would expect to have the checkbox with a global button option. It is really user unfriendly to click 10 times on a link to execute this operation.

So, maybe the combination of checkbox and links is a good choice.

romaintaz
+1  A: 

Best usable list I've ever come across: gmail

I would go for the hybrid approach you mentioned. If the action is item-specific (view detail) or extremely common then provide buttons or links within the row itself. Otherwise provide the checkbox functionality you suggested.

phpMyAdmin relies solely on the checkbox functionality for most of its actions and I always get annoyed at the number of clicks it takes me to delete a single row.

Chris Pebble
+1  A: 

Offhand with only three or four commands, you can probably put all as buttons and links in each row. This provides the user a fast way to execute the commands for a single row –one click per action –while the alternative selection-action model requires two clicks. However there are some considerations.

  • Selection-action may be better for executing the same action on multiple rows. If some of these actions result in a delay (e.g., it takes a second or two to refresh the table after a delete) or a dialog box (e.g., for download, the user must specify a local folder to download to), selection-action is faster in allowing users to multiselect a bunch of items and process them at once.

  • While you only have a few commands now, consider how many you may have with future versions or in other pages of the app (e.g., Insert New, Cut, Copy, Paste). You want to be internally consistent. Rows of repeating controls for five or more commands are likely to be excessively cluttering.

If you go with selection-action, you should implement other interaction features to make it really work well.

  • Don’t use check boxes, which can be confused with a record attribute, rather than a selected state. Use highlighting, either of the whole row or of a row icon, to indicate selection.

  • Support multi-selection with ctrl-clicking, shift-clicking, and dragging a selection box (the latter two allowing selection-action to be faster than in-row controls for multiple items). Note that some users don’t know these conventions, so if multi-selection is part of the usual workflow that non-power users need to do, consider a different UI entirely.

  • Support shortcuts, like using the delete key to delete a record and a right-click context menu that includes all actions.

As far as combining in-row with selection-action, View Detail can be supported by controls in the row in any case by making the record’s functional identifier into a link (as long as there is no need to edit the identifier), or allowing the user to double click on the record icon (the latter being an expert activation that should be redundant with a button).

I’m not clear what “mark” means. Set a flag? That sounds like an attribute of a record. Whether you use selection-action or in-row for the rest of the actions, that means marking should be done with a control like a checkbox in the table row so users can both see and set the value.

Michael Zuschlag