DC2890 Ответов: 2

Как я могу привязать 600000 строк в ListBox в ASP.NET


Всем Привет,

При привязке более 600000 строк в раскрывающийся список страница зависает.

Что я уже пробовал:

DataTable dt;
ДТ = GetDataTable(SQL-запрос);
фунт.Источник данных = ДТ;
lb.DataTextField = дисплей;
lb.DataValueField = значение;
фунт.Привязку();

2 Ответов

Рейтинг:
12

OriginalGriff

Просто: не надо.

Это очень, очень глупо, и это будет чертовски раздражать любого пользователя, который должен был использовать ваше приложение.
Подумайте об этом: это легко для вас сделать (хотя это приведет к краху вашего сайта, потому что у него заканчивается память), но даже если вы заставите его работать, представьте, что вы сидите перед экраном, пытаясь использовать выпадающий список. Сколько времени потребуется вам - да, вам - чтобы найти одну строку из этих 60 000 элементов в раскрывающемся списке (когда он наконец откроется - потому что это займет некоторое время само по себе), в которой они заинтересованы? Секунды? Минуты? Несколько часов? Дни?

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

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


DC2890

Спасибо за ответ...
Это не мой дизайн, а требование моего клиента.

OriginalGriff

Тогда ваш работодатель - идиот-объясните ему, что это не сработает, и будет чертовски раздражать пользователей, если это произойдет. Попросите его попробовать это в демонстрационном приложении windows с 60 000 элементами в раскрывающемся списке и посмотреть, как он относится к поиску значения, которое вы вставили в случайном месте. Предложите ему приз, если он сможет сделать это менее чем за десять секунд ...

F-ES Sitecore

Если бы Вы были портным и у вашего клиента была потребность в плаще, который заставит его летать, как Супермен, Как бы вы справились с этим? Будете ли вы изо всех сил стараться достичь невозможного, разочаровывая всех, или вы будете управлять его ожиданиями, объяснять, что то, чего он хочет, невозможно, и искать альтернативы?

OriginalGriff

Ого! Я неправильно истолковал это как 60 000 - но 600 000 предметов? Это уже за гранью глупости - вы вступаете на новую территорию ...

Dave Kreskowiak

Клиенты не диктуют такие "требования". 600 000 элементов никогда не будут работать в системе управления. Это займет целую вечность, чтобы заполнить его, если он вообще работает!, и займет у клиента очень много времени, чтобы выбрать любой отдельный пункт в списке.

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

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

Рейтинг:
0

Patrice T

Цитата:
При привязке более 600000 строк в раскрывающийся список страница зависает.

И ваш клиент рассчитывает сделать точные ходы в этом списке с помощью scrolbar ?
Загрузка телефонных номеров стран-плохая идея.
Только подумайте об этом, если вы можете подождать, пока наберется первое число, вы можете отбросить 90% списка, с 2 числами он будет отброшен на 99%.
Клиенту должно быть понятно, что полный дроплист-это не очень хорошая идея или что полный список имеет свою цену.