I see your point. The list of items is not a list of items that are
contained in the room. This is a list of "standard" items the user must
choose. In other words, the user has chosen (scanned) a room tag/barcode.
Now the application says, "what is the item you are going to scan?" That's
what the user will be selecting. It's not really an issue of trying to
filter the items. Regardless of how the filtering will take place, time
will be needed to select the items. I could show an empty listbox with an
editbox below, and allow the user to start entering a description. But, the
user may not even know what the description would look like. It could be
cryptic or straightforward.
One would think that a datagrid would be capable of handling this size of
data, but it shows that same symptoms: it takes about 10-15 seconds to
populate the list.
I just need to be able to quickly (or reasonably quickly) display the
entire list to the user so s/he can pick the item.
The display and use of *thousands* of lines of information is the flaw.
A user cannot make proper use of a listbox control with that many items
in it. Any time you say that you need to populate a list box with that
many items, I'd say that the design if flawed, regardless of whether the
use of such UI is widespread or not.
Is there no other characteristics that you can use to filter the
information? If there are thousands of items in a 'room', are they all
of the same type? Is there no more-localized information about them
(rack # or something)? Hell, 'color' would be better than nothing!
No, I don't believe that you'll be able to do any better, as long as you
insist on stuffing a control that full of data.
Paul T.
Kevin said:
Thanks for the input, Paul. How can you argue the design is flawed if
you don't know the flow of the application? I've seen many commercial
applications that display a huge list of items in a listbox, and the
design of those applications is far from flawed.
Anyway, the application is tracking assets within a particular room:
1) The user enters a room number (6 digits) into an editbox and press
[Next].
2) A list of descriptions for the item is presented. These descriptions
are contained in a table in the database.
We've tried using a datagrid, but it doesn't help with the time issue.
Any suggestions?
Paul G. Tobey [eMVP] wrote:
I'd argue that your UI design is flawed, not the functionality of the
control. A listbox with several *thousand* entries? That seems like a
good idea? Much better to *not* fill the control with anything until
the user gives you some guidance on what really needs to be displayed.
Paul T.
I have two distinct, but related problems.
1) I have form that has a listbox control. On xx_Load(), I load the
listbox with items from a SQL CE 2005 database table. This table has
several thousand records. It takes 10-15 seconds to load these
records. How can I reduce the amount of time it takes to load the
control? Also, would a datagrid be a better choice?
2) I thought about pre-loading a "global" listbox control with the
values and simply replacing (or adding) the control to the form. How
would I go about setting this up?
Thanks,
Kevin