ASP.NET Ajax Toolkit: каково максимальное количество элементов в ComboBox?
Автор вопроса: TonyОтветов: 6
Я создаю небольшую форму, используя ComboBoxes с большим количеством элементов, и кажется, что ровно после добавления 510 элементов ComboBox перестает работать, а кнопка со списком скрыта.
Есть ли максимальное количество элементов, которые можно добавить? Или это может быть другая проблема?
заранее спасибо
У вас есть более общая проблема здесь. Поле со списком с 500 элементами совершенно бесполезно. SLaks 30.11.2009
Почему? Я помню, что ComboBox также является текстовым полем с автоматическим поиском. Проверьте официальный пример: asp.net/AJAX/AjaxControlToolkit/Samples/ComboBox /ComboBox.aspx. Я не понимаю, почему комбо из 500 предметов совершенно бесполезно. Tony 30.11.2009
Том прав. Реализация, показанная в ссылке, имеет полосу прокрутки и автоматически выполняет поиск по мере ввода. Это может быть очень удобно, если кто-то рассматривает возможность использования текстового поля и списка... это поле со списком объединяет все в одном для вас. Brian T Hannan 30.11.2009
Однако 510 элементов - это много для одного списка. Вы должны подумать о том, чтобы разрушить структуру, найдя какую-то закономерность. Позвольте пользователю сузить результаты, используя меньшие списки... по одному. Это увеличит скорость и гарантирует, что вы не перегружаете одно поле со списком или список. Brian T Hannan 30.11.2009
Можешь объяснить, что ты имеешь в виду под словом перестает работать? azamsharp 30.11.2009
Конечно, происходит то, что кнопка со стрелкой, которая отображает элементы, просто исчезает, а автопоиск ничего не отображает, даже если я печатаю. Я проверил html-код, и кнопка имеет стиль отображения: скрытый. Возможно, это какая-то проблема с CSS, однако ComboBox отлично работает с менее чем 500 элементами. Tony 02.12.2009
Я только что попробовал AJAX ComboBox с 10000 элементов, и он работал нормально, хотя загрузка заняла много времени (около 10 секунд). Таким образом, нет предела в 510 элементов. Ваша проблема должна быть в чем-то другом.
Ответ 2 · рейтинг 1 · Shiraz Bhaiji
Во-первых, с таким количеством элементов в поле со списком вам следует изменить дизайн экрана. Как только вы преодолеете определенное количество элементов, пользователю будет быстрее писать что-то в текстовое поле.
Сказав, что 510 не круглое число, проблема, вероятно, не в поле со списком. Я предполагаю, что в этот момент полезная нагрузка для того, как вы получаете элементы, становится больше, чем позволяет конфигурация, комбо не получает всю ожидаемую информацию и поэтому зависает в ожидании информации.
Ответ 3 · tsilb
Я бы рекомендовал вам использовать комбинацию элементов управления, чтобы фильтровать элементы в более мелкие группы. Например, если у вас 500 автомобилей, вы можете отфильтровать их по производителю (в поле со списком) и по производителю (в другом поле со списком).
Ответ 4 · DOK
Можно ли разбить список на категории и использовать более одного ComboBox? Если вы добавили раскрывающийся список для выбора категории (географический регион, группа товаров или какой-либо другой фильтр), то пользователь мог выбрать категорию. Это будет применяться для фильтрации списка, отображаемого в исходном втором поле со списком. Это сделало бы пользовательский интерфейс намного лучше, и вы бы передавали в браузер намного меньше данных.
Я думаю о Cascading DropDown, продемонстрированном здесь.
Ответ 5 · Emrah
Ваша проблема может быть связана с Internet Explorer. У нас была аналогичная проблема пару месяцев назад, когда у нас не было никаких проблем с ней в Firefox или Chrome, но когда мы должны были показать поле со списком в IE, экран зависал, и он снова начинал отвечать через пару минут.
Нужно ли вам такое большое поле со списком, это еще одна проблема, которая не имеет отношения к вашему вопросу, поэтому я постараюсь ответить :)
Подсказка к ответу beno здесь, который сработал для меня:
Это ограничение, скорее всего, связано с настройкой maxJsonLength по умолчанию в файле web.config. Вы можете указать размер следующим образом в web.config: