Раскрывающийся список с данными из миллиона пунктов

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

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

Спасибо

яффа

7 ответов

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

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

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

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

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

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

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

Вот пример ASP.NET AJAX Control Toolkit, каскадный DropDown:

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

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

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

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

Наилучший способ - для гридов на страницу и для DropDowns для фильтрации.

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

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

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

Другие вопросы по тегам