In a web app, let's say I have a list of options for the user to select from. I would usually use a drop down in this case,if there is a reasonably small number of options, but how should i approach this differently if there are 50 options? or 100? or 1000?
|
|
Perhaps combine a two pane approach with a search?
The UI filters dynamically on the client side as you type in the search box. I like it better than search only, because you can discover what all the options are. For bonus points, you can construct this on the fly from a regular select/multiple control. |
|||||
|
|
A couple of ideas:
|
|||
|
|
|
Well, if you have an app where a user can select from 1000s of options, my first response would be that you've designed something incorrectly. Try zooming out and considering the information architecture leading to so many options and see what you can do about that. Does the user really need all those choices? Can you get rid of a few for her or choose some sensible defaults? How do you deal with the paradox of choice problem? But in more practical terms, try breaking the information up into categories and presenting them that way. I could be more helpful if I knew what information you were designing for, since that often influences what kind of visualisation or controls you can use. Consider time zones. You can be really specific and offer each individual time zone, leading to a huge list thst you have to do some hardcore work on to make digestible for the user. Or, you can choose only the time zones nearest to most places, which might leave a few exceptional users out, but cover 99% of them. Same thing with choosing a time for an event. Being specific means a user can choose down to the minute. 60 item dropdown menus? Or you can segment time by 5 minutes. Suddenly the user only has to choose from 12 options, and it's specific enough for the use case. |
|||
|
|
|
for that many options any type of multi select would be annoying. Think one wrong click and a half an hour gone. You should use 2 boxes with arrows like this it's not too hard to do with a few lines of JS |
|||||
|
|
|||
|
|

