Раскрывающийся список с данными на миллион - PullRequest
1 голос
/ 17 января 2012

Pls Каков наилучший способ связывания элементов (выберите COLUMN из TABLE) с миллионами строк в ASP.NET.

То, что у меня сейчас есть, - это замораживание страницы ASP.NET, так как dropdownList пытается заполнить из SQL SERVER более миллиона строк данных.

Спасибо

Яффо

Ответы [ 7 ]

2 голосов
/ 17 января 2012

Для такого большого списка сначала нужно спросить себя что-то

  • Вы действительно хотите разместить 1 миллион строк в выпадающем списке?
  • Не проще ли показать несколько выпадающих списков и заполнить следующий, основываясь на предыдущем выборе?
  • Вы могли бы иметь div, эмулирующий выпадающий список, и когда полоса прокрутки достигла конца, вы можете загрузить больше строк ...

Наилучший подход - это , чтобы отсортировать по категориям и показать пользователю пошаговый пошаговый процесс с несколькими выпадающими списками, так как я сомневаюсь, что кто-нибудь прочтет 1 миллион записей.

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

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

1 голос
/ 17 января 2012

Не думаю, что вы должны связывать 1 миллион записей с DropDownList.Это очень плохо для удобства использования, как пользователь должен найти нужный вариант?

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

Вот пример каскадного выпадающего набора ASP.NET AJAX Control Toolkard:

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx

0 голосов
/ 17 января 2012

Как указано в каждом приведенном здесь ответе, привязка миллиона записей к раскрывающемуся списку нецелесообразна. Ребята из Smashing Magazine написали фантастическую (похожую) статью о лучшем подходе - специально сфокусированном на опыте пользователя для больших выпадающих меню, и его стоит прочитать.

0 голосов
/ 17 января 2012

Если вы действительно хотите это сделать, сначала вы можете связать свой объект после поиска с вашим пользователем, иначе, если пользователь выполняет поиск без привязки всего.В .net 4 вы можете использовать Linq, лучший способ получить ваши данные - использовать эту технологию.Но это слишком много, чтобы показать вашему пользователю.

0 голосов
/ 17 января 2012

Наилучшим способом является использование сетки на странице и фильтрация DropDown.

на странице сетки вы показываете только первые X записей, и пользователи могут переходить на следующую / предыдущую / первую / последнюю страницу и т. Д.on.

в отфильтрованном элементе управления вы просите пользователя ввести первые x символов и затем отображать только соответствующие записи.

0 голосов
/ 17 января 2012

Считайте, что время замораживания является большим предупреждающим сигналом.Почему вы должны позволить пользователю выбирать среди 1000K предметов.Это было бы большим провалом пользовательского интерфейса.Используйте элемент управления автозаполнением с вызовом веб-службы JSON.

0 голосов
/ 17 января 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...