views:

415

answers:

3

I am having a sample Silverlight app that contains a combo box with thousands of values(~4000). The values are pulled from the web service and populated currently, which takes a lot of time and renders the UI unresponsive.

The use case: - A field in the UI needs to be populated by the user
- The field can have only certain predefined values(already present in the database)
- The values in the field cannot be grouped/categorized

What have you done or will do to:
- Make the UI more responsive when the values are getting populated in the combo box
- Populate the combo values as fast as possible

Thanks for reading!

UPDATE:

Great comments! Appreciated!

I have edited my post to present the use case.

The best alternative i could think of would be a Google auto-suggest-like textbox that suggests as i type-in.

+10  A: 

I would avoid the entire situation in the first place -

I personally detest combo boxes with more than about 20 elements. At some point, choose a better user interface.

A combo box with 4000 elements makes for a horrific user experience. Redesign this to make it simpler for the user to find what they are looking for.

Reed Copsey
I would vote this up more but it only let's me do it once.
csharptest.net
hehe we posted basically the same exact thing..except you beat me to it :(
Stan R.
Agreed. A combo box sounds like the wrong interface for choosing between thousands of options.
Eric King
I don't like combo boxes for more then about 10 items, other wise it's just too much searching. Think about a search dialog for them to find what they need.
Nick
@Nick: Yeah, I really do agree. After 5-6 items, I'd go for a different type, in most cases. However, after about 20, I get really turned off... at some point, it's just obnoxious.
Reed Copsey
Our apps use a standard search window with with multiple fields with type-ahead narrowing when we're in places where more than ~50 choices are available.
DaveE
+4  A: 

Well, personally I dont think a ComboBox with 4000 values is very user friendly, imagine selecting something from 4000 options...

Usually when i have large data like this I use paging.

Stan R.
Reminds me of the old joke: "I told the doctor 'It hurts when I do this. What can I do?' He replied, 'Stop doing that.'"
Eric King
thanks, i laughed out loud on that one..haha
Stan R.
Paging isn't necessarily useful when looking for a specific option. If he's using a combobox for it's intended purpose, to select something, having to page through thousands of items isn't much better.
Nick
+7  A: 

Think about using popups to do a modal search to select the item the person wants. Let them enter some search criteria and show the results in a listbox which should hopefully be a more reasonable number.

Scrolling through 4000 items in ridiculous and the thumb on the scrollbar would be so touchy, it's basically useless.

You're making them search through thousands of items, let them actually SEARCH for it then in a dialog.

Nick
+1 First *actual* answer!
mattruma
@Nick: Good suggestion. Instead of a popup dialog though, would go for a text box that auto-suggests as you type in(like the Google search box).
pencilslate
You know your problem better than I do, but yeah, it all depends on how they are going to be looking for the item they want. If it's just by name, autocomplete is awesome. If they may want some other criteria other than name, a search dialog might be better.
Nick