views:

1211

answers:

4

I am using C# and ASP.NET with version 2.0 of the .NET Framework library on this particular project. We are also using the AjaxControlToolkit. The AjaxControlToolkit should have the controls available to make a descent User Interface solution to the problem I'm facing.

I have run into this in a few projects in the last year, and used different solutions in the past. The current design of the project I just picked up, is that there is an <asp:DropDownList> control and on page load a Database call is made to get a list of values. This is then bound using DropDownList's datasource. The problem is that there is 25k items returned from the database. First thing, that's not acceptable for a user to have to scroll through tens of thousands of items. But, even more importantly, is that in every browser that it is tested on (IE 7, FF 3, Safari, and Chrome) the browser completely hangs as it is propagating the dropdownlist items.

What I'm thinking is using a Modal Popup form, which an Autocomplete Extender that allows the user to drill down to a specific company. So, in the field where they have to choose a company, they click on a "select company" icon, the modal form comes up, letting them use the autocomplete extender to select an existing company. They click "Ok" and it save the value to the field.

However, I'm an old school command line/shell/terminal guy, and my ideas of acceptable UI design might be skewed (give me a command prompt on any system, and I'm good to go). I would like the advice of those in the community here as to what they think would be an acceptable solution, or if they have faced other issues like this.

A: 

I had to deal with the same issue. But I ended up using a combobox with paging support and auto complete. Currently this combobox happens to be from Telerik. Its a comboBox for auto complete since you can't type into a droplist.

Aaron Fischer
I'd like to not use 3rd party controls. However, I am trying to mentally picture what that solution looks like.
stephenbayer
Its a combobox with a scroll bar in the listbox it shows 20 items if you scroll to the bottom it fetches the next 20 and adds to the list. The ajaxtool kit may have this type of control.
Aaron Fischer
A: 

I agree that no user is going to want to look thru 25,000 items to find the one they want. Is there some way you can limit the data so that they drill down? Like selecting a region or type of company first and then showing the ones that match?

Slapout
no, not really... :( They aren't classified like that in the database.
stephenbayer
+1  A: 

I think your idea for the autocomplete extender is the best solution. I've had this problem as well (sounds similar--a project you are taking over from somebody else). The push-back often comes from the user side. They are used to being able to select from a list of items. Unfortunately as the database grows, this becomes less and less feasible.

But when you have 0.5MB of html downloaded on the page (not including the viewstate), compromises have to be made.

Why do you think you need to create modal popup? Can't you just have the extender on your data entry page?

Keltex
This is almost exactly what I've decided to to. I still have a few quirks to work out to make sure that the text box only has a value from the list.
stephenbayer
A: 
  • Multiple cascading ListBoxes, each futher refining the resultset of the previous
  • AJAX AutoCompleteExtender
tsilb