I have a field which needs to be populated from a large list of items (many thousands). These items have unique numbers as identifiers, and there can be many thousands of them. (Similar to the way that bug tracking software will label 1000 items from #1 -> #1000). The field must be populated with a valid value.
A dropdown is obviously not a suitable control here. I've thought of five possible solutions:
- Free text input, with some kind of validation on input blur.
- As (1) but with a manual 'check' button which manually validates input instead of doing it automatically.
- As (1), but with a 'search' button which overlays a form allowing user to search on various item properties (ie. item title), and then select from a list of valid options?
- An inline sortable/filterable/pageable grid showing all items and some properties (such as identifier, Title, Date Created).
- As (4), but the grid is hidden by default. A 'search' button opens the grid in an overlay.
The first two options require the user to already know the ID of the item they are selecting or navigate away from the page and search for it. The inline grid might take up quite a lot of space for what is supposed to be a fairly simple selection. The overlays again seem quite complex for a simple control.
Are any of the options I've detailed appropriate? Is there a better way?