ASP.NET GridView «Страница не найдена» в PostBack - PullRequest
2 голосов
/ 03 февраля 2010

У меня есть GridView, который (в одном конкретном случае) будет содержать около 5000 строк, каждая строка содержит DropDownList с около 5000 элементов. Естественно, это занимает целую вечность, чтобы загрузить и выбрасывает и исключение OutOfMemory на моем боксе.

Ничего страшного, подумал я. Я просто включу пейджинг.

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

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

Ошибка 101 (net :: ERR_CONNECTION_RESET): Неизвестная ошибка.

В Google Chrome.

И ошибка:

Internet Explorer cannot display the webpage

В IE.

Будем весьма благодарны за любые мысли о том, почему это происходит.

Ответы [ 3 ]

4 голосов
/ 04 февраля 2010

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

Как уже говорили другие, ваша реализация нуждается в переосмыслении.

Эти параметры организованы в алфавитном порядке? Если так, то как насчет довольно простого автозаполнения? Введите две буквы, а затем получите всплывающее окно доступных параметров, которые начинаются с этих двух букв. Библиотека Yahoo имеет достойную реализацию этого.

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

2 голосов
/ 03 февраля 2010

Посмотрите в средстве просмотра событий, где работает IIS, и вы увидите все необработанные ошибки ASP.NET.

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

0 голосов
/ 03 февраля 2010

Вместо получения 5000 строк просто восстановите те, которые вы покажете на странице.

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

+ 1

...