2010-03-15 4 views
2

Скажем, у меня есть отчет, который можно ограничить, указав некоторое значение в выпадающем списке. Этот раскрывающийся список ссылается на таблицу с> 30 000 записей. Я не думаю, что было бы возможно заполнить выпадающее меню! Итак, каков наилучший способ предоставить пользователю возможность выбрать значение, учитывая эту ситуацию? Эти значения действительно не имеют категорий, и даже если я разделяю (имея некоторую ситуацию с раскрывающимся разложением) первой буквой значения, это может оставить несколько тысяч записей.Лучший способ поддержки больших выпадающих списков

Каков наилучший способ справиться с этим?

ответ

3

Я действительно не будет имеет раскрывающийся список из 30 000 элементов. Предполагается, что GUI сделает это проще, чем пользователю, а не сложнее.

Если у вас нет другого способа классифицировать данные, отличные от алфавита, вы не ограничены использованием двухэтапного подхода с использованием только символов. Сделать это зависит от первых двух символов.

Это даст вам максимум 676 (при условии только альфа) в первом раскрывающемся списке и (в среднем) 44 во втором.

Мы фактически предприняли два подхода к этой проблеме. BIRT (который мы используем) позволяет использовать каскадные параметры, которые могут легко запускать этот запрос второго уровня, когда вы меняете первый раскрывающийся список.

Тем не менее, некоторые из наших клиентов заботятся абсолютно о нулевом значении для графического интерфейса пользователя (кроме вывода хорошего 9-точечного Verdana и красивых графиков, чтобы успокоить управление, конечно). Они предпочитают текстовое поле ввода свободной формы, в котором они могут просто ввести "SYS_PAX_%", чтобы изменить свои запросы.

Конечно, это те клиенты, которые точно знают, какие данные находятся в их базе данных, и используют значения, которые подпадают под категорию с предложениями SQL LIKE. Другие предпочитают возможность поиска.

5

Поиск, не классифицировать.

Вы можете отобразить элемент управления как простое текстовое поле, а когда пользователь вводит несколько символов, вы можете вывести всплывающее окно с автозаполнением, чтобы выбрать окончательное значение. Here's a link to the jQuery plugin for autocomplete.

+0

избил меня, когда я печатал. :) – griegs

+0

Бинго. Ударьте его прямо на нос +1 – JohnFx

+0

На самом деле, это лучшее решение, чем мое, если вы можете это сделать. К сожалению, мы не можем, но, похоже, это возможно для среды опроса. – paxdiablo

0

+1 @pax. Тем не менее, я хотел бы увидеть раскрывающийся список 30 000! :)

@JustAProgrammer, возможно, вы могли бы сделать текстовое поле, где люди могут ввести в начале того, что они ищут, и вы можете выбирать, как они печатают в.

0

Если вы спрашиваете от производительности перспективу, а не перспективу юзабилити, я бы подумал об использовании подхода «живого» списка, который загружает только подмножество элементов списка по запросу при прокрутке вверх или вниз. Если пользователь быстро нажимает на список, чтобы сказать, что он посередине, он загрузит еще 10 элементов, соответствующих этой позиции. Время рендеринга и времени загрузки будет намного быстрее.

Как пейджинг, но «жидкость».

0

Автоматическое полное раскрытие, как предложено выше, лучше всего иметь. Но для этого потребуется, чтобы пользователи имели представление о типе записей для начала. Если пользователи знакомы с данными, пойдите для этого.

В качестве альтернативы, если вы можете классифицировать свои данные, вы можете начать сначала с категорий, а затем на основе выбора вы можете заполнить зависимый снимок фактическими значениями, которые будут подмножеством исходных значений.

1

У меня был такой же вопрос около 2 лет назад относительно выпадающего окна asp.net.

Поверьте мне, даже не попробуйте. Используйте приведенные выше предложения для автоматического завершения. Я обнаружил, что отображение чего-либо более 5000 записей приводит к сбою браузера.

Только мои 2 цента.

Смежные вопросы